home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Tcl-Tk 8.0 / Pre-installed version / tk8.0 / changes < prev    next >
Encoding:
Text File  |  1997-08-15  |  175.4 KB  |  3,983 lines  |  [TEXT/ALFA]

  1. This file summarizes all changes made to Tk since version 1.0 was
  2. released on March 13, 1991.  Changes that aren't backward compatible
  3. are marked specially.
  4.  
  5. SCCS: @(#) changes 1.215 97/08/13 17:47:45
  6.  
  7. 3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
  8. the interpreter when the main window is deleted (otherwise there will
  9. be dangling pointers to the non-existent window).
  10.  
  11. 3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
  12. some X servers get upset at this.
  13.  
  14. 3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
  15. couldn't find group on shareList" panic.
  16.  
  17. 3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
  18. handle listboxes (and scrollbars) with zero total entries in them.
  19.  
  20. 3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
  21.  
  22. 3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
  23. in some cases where wish scripts invoke "destroy .".
  24.  
  25. 3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
  26. handler.
  27.  
  28. 3/23/91 (bug fix and new feature) Added -name option to main.c, made
  29. it more clever about choosing name (was always using the name "wish"
  30. on most Unix systems).
  31.  
  32. 3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
  33. used it to malloc strings for various widget options that used to be
  34. Tk_Uid's (e.g. button text, message strings, etc.).  Eliminates core
  35. leaks when values change in continuous non-repeating fashion.
  36.  
  37. 3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
  38. Tk_EventuallyFree procedures to help manage widget records and avoid
  39. premature memory free-ing.
  40.  
  41. 4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
  42. wasn't tracking correctly when wm-induced size change also changed window
  43. position (e.g. menus wouldn't be displayed at the right places).
  44.  
  45. 4/5/91 (new feature) Added "invoke" option to widget command for buttons,
  46. check buttons, and radio buttons.
  47.  
  48. 4/5/91 (new feature) Added "unpack" option to "pack" command.
  49.  
  50. 4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
  51. more careful about window deletions that occur while repacking is in
  52. progress.
  53.  
  54. 4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
  55. Tk_Preserve and Tk_Release.  Should fix many problems.
  56.  
  57. 4/6/91 (bug fix) Changed "winfo children" to generate correct lists
  58. when child names have embedded spaces.
  59.  
  60. 4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
  61. "winfo".
  62.  
  63. 4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
  64. %-substitutions in commands (e.g. long path names) and caused memory
  65. to be overwritten.  Modified tkBind.c to fix.
  66.  
  67. ---------------------- Release 1.1, 4/18/91 -------------------------
  68.  
  69. 4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
  70. windows causes windows to gradually walk south when moved or resized.
  71. Fixed tkWm.c to patch around the problem.
  72.  
  73. ---------------------- Release 1.2, 4/24/91 -------------------------
  74.  
  75. 4/26/91 (new feature) Added -geometry and -display switches to wish.
  76. Also wrote wish manual entry.
  77.  
  78. 5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
  79. at right edge of window when strings were to large to fit in window.
  80.  
  81. 5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
  82. updated when elements were deleted:  tended to cause errors in
  83. communication with scrollbars.
  84.  
  85. 5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
  86. consecutive points in a polygon were the same (happened with some
  87. configurations of radio buttons, for example).
  88.  
  89. 5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
  90.  
  91. 6/1/91 (bug fix) Make sure that pointers are never used after being
  92. freed.
  93.  
  94. 6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
  95. values to not always be printed correctly.
  96.  
  97. 6/15/91 (bug fix) Make sure that interpreters are always unregistered
  98. when their main windows are deleted, and make wish delete the main
  99. window before exiting.
  100.  
  101. 8/21/91 (misfeature correction)  Automatically set source of window
  102. position to "user" in "wm geometry" command, unless it has been
  103. explicitly set to "program".
  104.  
  105. 9/5/91 (bug fix) Modified option code to accept '#' as a comment
  106. character in .Xdefaults files, in addition to '!'.
  107.  
  108. 9/10/91 (misfeature correction) Changed binding mechanism so that
  109. numeric %-sequences are output in decimal instead of hex.
  110.  
  111. 9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
  112. checking files and X connections properly so it missed events.
  113.  
  114. 10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
  115. table" structure, which can be used to create bindings on items in
  116. canvases as well as windows.
  117.  
  118. 10/6/91 (new feature) Upgraded buttons and menus to use new tracing
  119. code in Tcl 6.0.  Allows radio buttons and check buttons to both set
  120. and clear themselves when associated variable changes.
  121.  
  122. 10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
  123. selection when new entries were inserted in the listbox after the location
  124. of the selected item(s), and goofed up on redisplay if selected item
  125. was deleted and then selection was immediately lost.
  126.  
  127. 10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
  128. manages window;  this led to core dumps in some situations.
  129.  
  130. 10/31/91 (reorganization) Renamed manual entries so that they are no
  131. more than 14 characters in length.
  132.  
  133. 10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
  134. doesn't needed to be included by tk.h.
  135.  
  136. 11/3/91 (portability improvement) Eliminated use of "class" as a variable
  137. name, since it's a reserved word in C++.
  138.  
  139. 11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
  140. use of Tcl hash tables instead of separate "Hash_" module.  The "lib"
  141. subdirectory is no longer needed in Tk.
  142.  
  143. ---------------------- Release 1.3, 11/7/91 -------------------------
  144.  
  145. 11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
  146. are modified (FindSequence in tkBind.c forget to set *maskPtr).
  147.  
  148. 11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue.  Could
  149. cause new entries to get created unnecessarily.
  150.  
  151. 12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
  152. special characters (e.g. [ or \) that appear in %-replacements, so that
  153. they can be parsed cleanly.
  154.  
  155. 12/10/91 (bug fix) Manual entries had first lines that caused "man" program
  156. to try weird preprocessor.  Added blank comment lines to fix problem.
  157.  
  158. 1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
  159. and the like to make it more clear that the argument must be a Tk_Uid
  160. and not a string.
  161.  
  162. 1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
  163. very narrow (too small to hold both arrows) could cause negative values
  164. in calls to XClearArea, which crashed some servers.
  165.  
  166. 1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
  167. is 0.  Occasionally affected things like message window geometry.
  168.  
  169. 1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
  170. Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
  171. in Tk_ConfigureWidget.
  172.  
  173. ---------------------- Release 1.4, 1/10/92 -------------------------
  174.  
  175. 1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
  176. properly during menubutton cleanup if an error occurred during
  177. menubutton creation.
  178.  
  179. 1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
  180. scrollbars to display a slider that was too large.
  181.  
  182. 2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
  183. where new mask was specified for existing handler.
  184.  
  185. 2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
  186. bindings from the pattern table:  only did the removal for the
  187. first pattern in a pattern list.
  188.  
  189. 2/15/92 (new feature) Added procedures Tk_DefineBitmap and
  190. Tk_SizeOfBitmap.  Tk_GetBitmapFromData is now considered obsolete
  191. and probably shouldn't be used anymore.  Tk_GetBitmapFromData
  192. is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
  193.  
  194. 2/15/92 (new feature) Added "curselection" and "select clear" options
  195. to widget command for listboxes.
  196.  
  197. 2/15/92 (new feature) Added Tk_3DBorderColor procedure.
  198.  
  199. 2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
  200. the slider position to lie within the object's range:  can scroll off the
  201. end of an object, if the object permits it.  Changed listboxes and
  202. entries to explicitly prevent viewing off the ends.  Also relaxed
  203. listbox index checks so that out-of-range indices are automatically
  204. adjust to fit within the listbox range.
  205.  
  206. 2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
  207. if a new window's name was found to be in use already.  Fixed to clean
  208. them up.
  209.  
  210. 2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
  211. -width options to labels, buttons, check buttons, menu buttons, and radio
  212. buttons.  This means that (a) size can be controlled better, (b) bitmaps
  213. can be displayed in any buttons, (c) the position of the text within the
  214. button can be controlled, and (d) a button can be made to display the value
  215. of a variable, continuously updating itself.  Also changed -selector option
  216. so that if it's specified as an empty string then no selector is drawn
  217. for the button.
  218.  
  219. 2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
  220. added new -bitmap option for entries.
  221.  
  222. 2/26/92 (bug fix) "after" command, when invoked with just one argument,
  223. called Tk_Sleep rather than registering a timer handler and looping on
  224. Tk_DoOneEvent.  As a result, it caused the application to become non-
  225. responsive to X events during the sleep.  Changed to use a Tk_DoOneEvent
  226. loop so that it is responsive.
  227.  
  228. 2/26/92 (bug fix) Tk's main program didn't map the main window until
  229. after the startup script returned.  Changed to map the window as a
  230. do-when-idle handler, so that scripts can cause the window to be
  231. mapped immediately with a call to "update" or "after".
  232.  
  233. 2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
  234. was originally mapped:  window got mapped anyway.  Fixed so that the
  235. window doesn't get mapped as long as it's withdrawn.
  236.  
  237. 2/29/92 (new feature) Can use "focus none" to clear input focus.
  238.  
  239. 2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
  240. properly.  These weren't being generated previously.
  241.  
  242. 2/29/92 (bug fix) Fixed entries so that newline characters can be properly
  243. displayed (as `\x0a').  Had to change interface to TkDisplayChars in order
  244. to do this (added flags argument).
  245.  
  246. 2/29/92 (bug fix) Change Tk not to update size and position of top-level
  247. windows directly during calls like Tk_ResizeWindow.  Instead, wait until
  248. actual event is received.  This makes updates happen at same time as
  249. callbacks.
  250.  
  251. 3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
  252. pressed at a time when there was no associated menu for the button.
  253.  
  254. 3/6/92 (new feature) Added Tk script library directory with official
  255. Tk initialization file "tk.tcl".  Other procedures used by Tk are in
  256. other files.  Tk procedures and variables all have names starting
  257. with "tk_".  Also added Wish startup script "wish.tcl", which sources
  258. both the Tk and Tcl startup scripts.  This means that things like
  259. auto-loading and abbreviation expansion are now available in wish.
  260. Added new variables tk_library, tk_priv, and tk_version.
  261.  
  262. 3/6/92 (new feature) It's now possible to set bindings for whole
  263. classes by using the class name in the bind command.  For example,
  264. "bind Button <Enter> {puts stdout Hi!}" will cause a message to be
  265. printed whenever any mouse button is entered.  Can also use "all"
  266. to set bindings for all widgets.  Widget-specific bindings override
  267. class bindings which override "all" bindings.
  268.  
  269. 3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
  270. eliminate all hard-wired behavior.  Instead, default behavior is set
  271. by class bindings in tk.tcl.  Also set up class bindings for menus,
  272. menubuttons, and entries, which previously had no default behavior at
  273. all.  Scrollbars and scales still have hard-wired behavior that can't
  274. be overridden.
  275.  
  276. 3/7/92 (look-and-feel change) Changed listboxes and entries and menus
  277. to use button 2 for scanning instead of button 3.  This is more consistent
  278. with the official Motif use of button 2 for dragging.
  279.  
  280. 3/10/92 (new features) Added more options to "winfo" command:  screencells,
  281. screendepth, screenmmheight, screenmmwidth, and screenvisual.
  282.  
  283. 3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
  284. to see whether window was mapped before sharing events with it.
  285.  
  286. 3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
  287. geometry-management procedures, causing core-dumps when menu buttons
  288. had their border widths changed.
  289.  
  290. 3/16/92 (bug fix) Menus were setting their geometry directory rather
  291. than using Tk_GeometryRequest mechanism.
  292.  
  293. 3/17/92 (new feature) Added -cursor option to all widgets to set the
  294. active cursor for the widget.  Also added TK_CONFIG_ACTIVE_CURSOR
  295. configure type.
  296.  
  297. 3/18/92 (new feature) Implemented generalized screen coordinates to
  298. allow resolution-independent specification in many cases (but pixel-
  299. based coordinates are still OK).  Added Tk_GetScreenMM(),
  300. Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
  301. TK_CONFIG_PIXELS.  Changed widgets to use this new configure types
  302. wherever possible (a few of the more complex cases still haven't
  303. been taken care of yet).  Added "pixels" and "fpixels" options to
  304. "winfo" command.
  305.  
  306. 3/18/92 (new feature) First cut at canvas widgets is done and part of
  307. the official Tk now.  Canvases display text and structured graphics,
  308. and allow you to bind commands to events related to the text and
  309. graphics.
  310.  
  311. 3/21/92 (new feature) Added new "place" command.  It implements a
  312. new geometry manager that provides fixed placement, rubber-sheet
  313. placement, and combinations of the two.  Eliminated the commands
  314. "move", "resize", and "map" that were provided by main.c but never
  315. officially supported;  the placer provides all of this functionality.
  316.  
  317. 3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
  318. occasionally not being given the right size.  The problem occurred
  319. when a string of resizes happened all in a row (such as deleting all
  320. the windows in an application and then recreating them).
  321.  
  322. 3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
  323. "winfo containing" command.  These may be used to locate the window
  324. containing a given point.
  325.  
  326. 3/28/92 (new feature) Added "-exportselection" option to listboxes,
  327. so that listbox selection need not necessarily be the X selection.
  328.  
  329. 4/12/92 (bug fix) Changed menu buttons to store name of menubutton
  330. in the associated variable, rather than the name of the menu.  This
  331. is necessary in order to allow several menu buttons to share the
  332. same menu.
  333. *** POTENTIAL INCOMPATIBILITY ***
  334.  
  335. 4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
  336. removing the first error record from the error list.
  337.  
  338. 4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
  339. event specifications from being processed correctly:  the "1" was
  340. treated as a button name rather than a keysym.
  341.  
  342. 4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
  343. procedures.
  344.  
  345. 4/18/92 (new feature) Major revision to listboxes.  Can now scroll and
  346. scan in both x and y, plus -exportselection option allows selection not
  347. to be exported.  The "view" widget command has been replaced by "xview"
  348. and "yview", and the "scan" widget command has a new syntax.
  349. *** POTENTIAL INCOMPATIBILITY ***
  350.  
  351. 4/18/92 (new feature) Added -exportselection option to entries, so you
  352. can select whether you want the entry selection to be the X selection
  353. or not.
  354.  
  355. 4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
  356. plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
  357. and TK_CONFIG_OPTION_SPECIFIED.  Several other new types, such as
  358. TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
  359.  
  360. 4/29/92 (bug fix) Changed "-selector" default for menus to have separate
  361. values for mono and color.
  362.  
  363. 4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
  364. bogus scroll commands (last index less than first).
  365.  
  366. 4/30/92 (reorganization) Moved demos directory to "library/demos".
  367.  
  368. ---------------------- Release 2.0, 5/1/92 -------------------------
  369.  
  370. 5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
  371. redisplays after repeated insertions.  Also reduced number of invocations
  372. of scrollbar commands.
  373.  
  374. 5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
  375. flag;  it isn't needed and it causes problems on some systems.
  376.  
  377. 5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
  378.  
  379. 5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
  380. attempts to print non-existent bindings.
  381.  
  382. 5/11/92 (bug fix) Maximum name length for applications (name used in
  383. "send" commands) was too short (only 20);  increased to 1000.  Also
  384. fixed bug related to over-long names that caused core dumps.
  385.  
  386. 5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
  387. group was deleted as a side-effect of a shared event.
  388.  
  389. 5/13/92 (bug fix) Various initialization and core leak problems in
  390. tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
  391. tkCanvLine.c, tkListbox.c, tkEntry.c.
  392.  
  393. 5/13/92 (bug fix) Empty entries could be scanned off the left edge,
  394. displaying a garbage character.
  395.  
  396. 5/13/92 (bug fix) Fixed a few problems with window manager interactions,
  397. such as tendency for windows to spontaneously shrink in size.  By no
  398. means are all of the problems fixed, though.
  399.  
  400. 5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
  401. invoke geometry manager unless requested size has changed.
  402.  
  403. ---------------------- Release 2.1, 5/14/92 -------------------------
  404.  
  405. 5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
  406. plus added "idletasks" option to "update" command.  Tk_DoWhenIdle arguments
  407. look different now, but the change should be upward-compatible.
  408.  
  409. 5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
  410. to the "bind" command.  For some reason they weren't supported previously.
  411.  
  412. 5/17/92 (new feature) Added "tkwait" command.
  413.  
  414. 5/17/92 (new feature) Added "grab" command.
  415.  
  416. 5/17/92 (new feature) Added "-width" option to messages.  Also changed
  417. messages to use the computed (i.e. desired) line length when displaying,
  418. not the actual width of the window.
  419.  
  420. 5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
  421. of improving window manager interactions.  Now there won't be more than
  422. one configure request outstanding to the wm at a time.
  423.  
  424. 5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
  425. or scaled correctly.
  426.  
  427. 5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
  428. (wrong windowUnits was passed to scrollbars).
  429.  
  430. 5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
  431. leaves window with button down.  Also changed redisplay to double-buffer
  432. for smoother redraws.
  433.  
  434. 5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
  435.  
  436. 5/22/92 (new feature) Buttons can now be disabled using the "-state" and
  437. "-disabledforeground configuration options.  The "activate" and "deactivate"
  438. widget commands for buttons are now obsolete and will go away soon.
  439. Please change Tcl scripts not to use them.
  440.  
  441. 5/23/92 (new feature) Entries can now be disabled using the "-state"
  442. config option.  Also improved class bindings for entries to keep the
  443. cursor visible in the window when operations occur.  Also made slight
  444. improvements in the way redisplay is done.
  445.  
  446. 5/23/92 (new feature) Added "-textvariable" option to entries so that
  447. the text in an entry can be tied to the value of a global variable in
  448. a fashion similar to buttons.
  449.  
  450. 5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
  451. messages.
  452.  
  453. 5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
  454. to menubuttons.
  455.  
  456. 5/28/92 (feature change) Changed "-width" and "-height" options on
  457. all flavors of buttons and menubuttons so that they are orthogonal
  458. to "-padx" and "-pady".  It used to be that -width overrode -padx
  459. (no padding).  Now they accumulate.
  460.  
  461. 5/29/92 (new feature) Added "-disabledforeground" option to menus and
  462. all flavors of buttons (can specify color for disabled things rather
  463. than just using stipple to gray out).
  464.  
  465. 5/29/92 (new features) Added many new options to menu entries:
  466. -activebackground, -background, -font, -state, -underline.  The
  467. "disable" and "enable" widget commands for menus are now obsolete
  468. and will go away soon.  Please change Tcl scripts not to use them.
  469.  
  470. 5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
  471. command.
  472.  
  473. 5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
  474. can be used to change listbox behavior so that only a single item is
  475. selected at once.
  476.  
  477. 6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
  478. "bind" command.
  479.  
  480. 6/3/92 (new feature) Added "winfo toplevel" command.
  481.  
  482. 6/3/92 (new feature) Made several changes for greater Motif compliance,
  483. including:
  484.     - menu retention if you click and release in the menu button,
  485.     - keyboard traversal of menus (see traversal.man)
  486.     - no widget flashing if you set $tk_strictMotif to 1
  487.  
  488. 6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
  489. binding could get reallocated while the command was being executed (e.g.
  490. bindings that delete or change themselves).
  491.  
  492. 6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
  493. can cause core dumps for fonts that don't enough information to compute
  494. tab widths.
  495.  
  496. 6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
  497. related events to be reported both to the correct window and its parent.
  498.  
  499. 7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
  500. StaticGray or StaticColor.
  501.  
  502. 7/15/92 (new feature) Text widgets now exist.  They display any number of
  503. lines of text with a variety of display formats, and include hypertext
  504. facilities.  See the manual page for details.
  505.  
  506. 7/20/92 (bug fix) If a top-level window was put in the iconic state to
  507. begin with, it could be deiconified with "wm deiconify .foo" until it had
  508. first been deiconified by hand from the window manager.  Tk was getting
  509. confused and thought the window was mapped when it wasn't.
  510.  
  511. 7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
  512. dimensions.  Round up to at least one pixel.
  513.  
  514. 7/29/92 (new features) Major upgrade to canvases:
  515.     - new item types: arc, window, bitmap
  516.     - added Bezier spline support for lines and polygons
  517.     - rectangles and ovals now center their outlines on the shape,
  518.       rather than drawing them entirely inside the shape
  519.     - new "coords" and "bbox" widget commands
  520.     - new "-tags" option for all item types.
  521.     - new "-confine" option to prevent scrolling off edge of canvas.
  522.  
  523. 8/6/92 (new feature) Added "-width" and "-height" options to frames.
  524. The "-geometry" option is now obsolete and should be removed from Tcl
  525. scripts:  it may go away in the future.
  526.  
  527. 8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
  528. the option name where they should have included its value.
  529.  
  530. ---------------------- Release 2.2, 8/7/92 -------------------------
  531.  
  532. 8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
  533. it passes to XCopyArea.
  534.  
  535. 8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
  536. dumps when text views changed (e.g. typing return on last line of screen).
  537.  
  538. 8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
  539. keyboard to traverse over separator menu entries.
  540.  
  541. 8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
  542. maximum # of open files.
  543.  
  544. 8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
  545. changes.  They also weren't recentering canvases on window size changes.
  546.  
  547. 8/10/92 (bug fix) There were still a few places where commands were being
  548. invoked at local level instead of global level (e.g. commands associated
  549. with buttons and menu entries).
  550.  
  551. 8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
  552. all keys (i.e. <Shift-Tab> was treated the same as <Tab>).  Modified to
  553. allow explicit request for shift modifier, like <Shift-Tab>.
  554.  
  555. 8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
  556. explicitly.
  557.  
  558. 8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
  559. the bounding boxes for arcs, in order to make sure that proper redisplay
  560. occurs when arcs are moved (little turds were getting left behind).
  561.  
  562. 8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
  563. area is off the screen.  Also, only do a background clear for the portion
  564. of the redraw area that is on-screen.  Also, reduced size of off-screen
  565. pixmaps used for redisplaying, which speeds up redisplay in some cases.
  566.  
  567. 8/19/92 (bug fix) Canvases that were taller than wide were not being
  568. redisplayed properly.
  569.  
  570. 8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
  571. all X events (useful for tracing, watching non-Tk windows, etc.).
  572.  
  573. 8/21/92 (bug fix) Widgets weren't always being notified when they got
  574. the focus back again (the problem had to do with grabs and menus in
  575. particular).
  576.  
  577. 8/21/92 (new feature) Added "-state" option to scale widgets.
  578.  
  579. 8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
  580. to occur in bitmap file names.
  581.  
  582. ---------------------- Release 2.3, 8/24/92 -------------------------
  583.  
  584. 8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
  585. for menubuttons were being lost.
  586.  
  587. 8/27/92 (bug fix) Entries were selecting last character when a B1-drag
  588. occurred past the right edge of the text.
  589.  
  590. 8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
  591. press caused the canvas state to lock up so that it didn't select a
  592. new current item.
  593.  
  594. 9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
  595. are out of range;  now it just rounds them off to the nearest existing
  596. entry.
  597.  
  598. 9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
  599. invoking "yview -pickplace" widget command on texts that are too small
  600. to hold any lines at all.
  601.  
  602. 9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
  603. when adding tags to non-existent lines.
  604.  
  605. 9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
  606. color (i.e. couldn't make them transparent).
  607.  
  608. 9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
  609. extensions.  Added "install" target to Makefile to suggest how Tk should
  610. be installed.
  611.  
  612. 9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
  613. screen 0 rather than using DefaultRootWindow.  DefaultRootWindow doesn't
  614. always go to screen 0 on displays with multiple screens, which can result
  615. in send's not being possible between the screens.
  616.  
  617. 9/18/92 (new feature) Added three new options to "wm" command: "protocol",
  618. "client", and "command".  These provide support for window manager protocols
  619. such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
  620. WM_CLIENT_MACHINE and WM_COMMAND properties.
  621.  
  622. 9/30/92 (new feature) Implemented color model support, including
  623. "tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
  624. procedures.  These allow you to force mono operation even on a color
  625. display.  Also changed color allocation not to give errors when colors
  626. run out, but just to switch to a mono color model.
  627.  
  628. 10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
  629. during text deletion.
  630.  
  631. 10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
  632. colors.  This is needed to work around improper reference count management
  633. for colormap entries under X11/NeWS.
  634.  
  635. 10/7/92 (new feature) Added support for different visual types, including
  636. procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
  637. Tk_Visual, Tk_Depth, and Tk_Colormap.  The code for this was contributed
  638. by Paul Mackerras.
  639.  
  640. 10/7/92 (new feature) Added Tk_IsTopLevel macro.
  641.  
  642. 10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
  643. cascaded children not to track mouse motion correctly (the cascade
  644. switched in response to mouse motions within the cascaded child).
  645.  
  646. 10/12/92 (new feature) Major changes to focus handling:
  647. (a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
  648.     and Leave, so it will work better with explicit-focus-model window
  649.     managers (e.g. mwm in default mode).
  650. (b) Tk generates FocusIn and FocusOut events for the focus window now.
  651.     The old procedural interface (via Tk_CreateFocusHandler) is obsolete
  652.     and is no longer used inside Tk.  It is still supported for
  653.     compatibility, but won't be for long.  You should change your code
  654.     to use FocusIn and FocusOut events instead.
  655. (c) The model for FocusIn and FocusOut events is different than the
  656.     one described in Xlib documentation.  See the "focus" manual entry
  657.     for details.
  658. (d) If there is no input focus then keyboard events are discarded.  They
  659.     used to be directed to the mouse pointer window, although this wasn't
  660.     documented.  The focus now defaults to the root window.
  661. *** POTENTIAL INCOMPATIBILITY ***
  662.  
  663. 10/15/92 (bug fix) Fixed text items in canvases where they didn't
  664. display the insertion cursor if the item had no characters in it.
  665.  
  666. 10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
  667. BadWindow X protocol errors when retrieving the selection.  Tk wasn't
  668. making sure that a window existed before using it to retrieve the
  669. selection.
  670.  
  671. 10/30/92 (feature change) Changed canvases so that if the scroll region
  672. is smaller than the window and -confine is on, the scroll region isn't
  673. forced to be centered in the window;  it can be anywhere that meets the
  674. confinement restrictions.
  675.  
  676. 11/2/92 (new feature) Added "winfo exists" command.
  677.  
  678. 11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
  679. when-idle handler is created as a side-effect of another when-idle
  680. handler, the new handler isn't invoked until Tk has first checked
  681. for other events to process.
  682.  
  683. 11/6/92 (bug fixes, new features) Major overhaul of window manager
  684. interface:
  685. (a) Tk should now work with virtual-root window managers;
  686. (b) windows will now place more accurately on the screen and stay where
  687.     they're supposed to;
  688. (c) size changes handled more reliably;
  689. (d) code now works robustly in the face of withdrawals followed
  690.     immediately by deiconifications.
  691. (e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
  692.     vrootx, vrooty, vrootwidth, vrootheight.
  693. (f) Added "overrideredirect" option to "wm".
  694. (g) Fixed bug where change in width-only via "wm geom" didn't always work
  695.    (min and max window sizes weren't being set properly for the wm).
  696.  
  697. 11/6/92 (bug fixes) Modified menus so that they work correctly with
  698. virtual root window managers.  Also fixed bug where menus didn't move
  699. along with their associated windows, so that the menu popped up at
  700. the old location of the window rather than its new location.
  701.  
  702. 11/9/92 (new constraint) Made it illegal to give windows names that
  703. start with upper-case letters, since such names will goof up the
  704. option database by appearing to be classes rather than names.
  705. *** POTENTIAL INCOMPATIBILITY ***
  706.  
  707. 11/10/92 (new feature) Added Postscript output to canvases.
  708.  
  709. 11/13/92 (bug fix) Changed default for maximum size passed to window
  710. manager from 1000000 (which causes some wm's to make windows too large
  711. when "maximized") to the size of the display.
  712.  
  713. 11/14/92 (feature change) Major overhaul of menubuttons and pull-down
  714. menus.  Removed event-sharing code, including Tk_ShareEvents and
  715. Tk_UnshareEvents.  The -variable option for menubuttons has been
  716. removed,and the "post" and "unpost" widget commands for menubuttons
  717. no longer exist.  The "post" widget command for menus no longer
  718. allows a group option.  The procedure tk_menus has been replaced
  719. with a new procedure, tk_menuBar, which has a slightly different
  720. interface.
  721. *** POTENTIAL INCOMPATIBILITY ***
  722.  
  723. 11/20/92 (new features, feature changes) Major overhaul of grab
  724. mechanism to produce more correct event streams.  Also changed Tcl
  725. commands to require explicit window for grab releases (makes it
  726. possible for grabs to work on multiple displays simultaneously).
  727. The old "grab none" command no longer exists, but new options
  728. have been added: "current", "release", "set", and "status".
  729. *** POTENTIAL INCOMPATIBILITY ***
  730.  
  731. 11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
  732. directory location, if it is defined.  Otherwise fall back on usual
  733. compiled-in value.
  734.  
  735. 11/25/92 (bug fix) "wm grid" command was using wrong window.
  736.  
  737. 11/29/92 (bug fix) Fixed core dump that occurred when trying to use
  738. placer on top-level windows: return error instead.
  739.  
  740. 11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
  741. on whose behalf selection is being retrieved actually exists.
  742.  
  743. 12/3/92 (new feature) Added support for Mode_switch key to support the
  744. full ISO character set.  Also added event handlers for MappingNotify
  745. events so that Tk updates itself in response to keycode and modifier
  746. changes.
  747.  
  748. 12/6/92 (bug fix) Ignore recursive attempts to destroy window.
  749.  
  750. 12/9/92 (new demos) Added "tcolor" and "rmt" demos.
  751.  
  752. 12/10/92 (new features) Added "yposition" widget command for menus,
  753. changed "delete" widget command to take an optional second index,
  754. and changed -command option for cascade entries so that it is
  755. invoked when the entry is activated rather than when it is invoked.
  756. *** POTENTIAL INCOMPATIBILITY ***
  757.  
  758. 12/12/92 (implementation change)  Changed the procedures Tk_FreeBitmap,
  759. Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
  760. Tk_FreeGC to require an addition Display argument.  This is needed for
  761. Tk to function correctly when an application has windows on multiple
  762. displays.
  763. *** POTENTIAL INCOMPATIBILITY ***
  764.  
  765. 12/12/92 (new feature) Started creating a test suite.  Right now it
  766. only has a few tests.
  767.  
  768. 12/12/92 (new feature) Modified the packer so that a window can be
  769. packed in descendants of its parent (used to be restricted to the
  770. parent alone).  This makes it possible to hide extra windows used
  771. for geometry management.  Also, can use generalized screen distances
  772. in the "pack" command.
  773.  
  774. 12/16/92 (feature change) Boolean options such as -exportselection now
  775. print as 0/1 rather than true/false (both the default and current values
  776. print this way).  This makes it easier to use these values in expressions.
  777. *** POTENTIAL INCOMPATIBILITY ***
  778.  
  779. 12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
  780. been renamed "Radiobutton" and "Checkbutton" for consistency.  From now
  781. on widget class names will have exactly one capital letter.
  782. *** POTENTIAL INCOMPATIBILITY ***
  783.  
  784. 12/16/92 (new feature) Added -setgrid option to listboxes.
  785.  
  786. 12/16/92 (new feature) The "destroy" command, and the "delete" widget
  787. command for canvases, now accept any number of arguments, including
  788. zero.
  789.  
  790. 12/16/92 (new feature) Changed internal TkBindError procedure to
  791. Tk_BackgroundError and exported it to Tk clients.
  792.  
  793. 12/16/92 (option name change) Changed the place command's "dependents"
  794. option to "slaves" for better consistency with documentation.
  795. *** POTENTIAL INCOMPATIBILITY ***
  796.  
  797. 12/16/92 (name changes) Renamed the "cursor*" options in entries and
  798. canvases to "insert*".  Also renamed the "cursor" index to "insert" and
  799. the "cursor" widget command to "icursor".  This was done to avoid
  800. confusion between the mouse cursor and the insertion cursor.
  801. *** POTENTIAL INCOMPATIBILITY ***
  802.  
  803. ---------------------- Release 3.0, 12/17/92 -------------------------
  804.  
  805. 12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
  806. if a <LeaveNotify> binding deleted the current item.
  807.  
  808. 12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
  809. Also, tkWm.c wasn't properly setting WM_CLASS property on application
  810. startup.
  811.  
  812. 12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
  813. Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
  814. "display" argument.
  815.  
  816. 12/18/92 (missing documentation) Added documentation for the canvas
  817. "postscript" command, which was missing in the 3.0 release.
  818.  
  819. 12/21/92 (bug fixes) There were lots of problems with the new installation
  820. targets in the Makefiles, such as using "cp -f" and not installing
  821. prolog.ps.  Made several other miscellaneous improvements to Makefile.
  822.  
  823. 12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
  824. after coordinate changes made with the "coords" widget command.
  825.  
  826. 12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
  827. ever deiconify it again.
  828.  
  829. 12/21/92 (bug fix) Double-button event sequences didn't always trigger
  830. properly when grabs were in effect.
  831.  
  832. 12/22/92 (bug fix) The packer didn't display any top or bottom windows
  833. after a left or right expanded window, and vice versa.  Also made the
  834. distribution of space among expanded windows more even.
  835.  
  836. 12/28/92 (new features) Several improvements to selection:
  837. (a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
  838. (b) Added "clear" and "own" options to "selection" command, extended
  839.     "handle" option to delete handlers.
  840. (c) Error returns from "selection handle" scripts are now turned into
  841.     selection retrieval errors ("no such selection") rather than an
  842.     empty selection.
  843. (d) Tk responds automatically for targets APPLICATION (name of application,
  844.     so you can "send" to it) and WINDOW_NAME (name of window within
  845.     application.
  846. (e) Added test file "select.test" to test suite.
  847.  
  848. 12/28/92 (bug fix) Fixed problem with flashing menus that occurred
  849. because menu.tcl was willing to unpost and then immediately repost
  850. the same menu.
  851.  
  852. 1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
  853. of ==.
  854.  
  855. 1/21/93 (bug fix) Changed many widgets to eliminate use of
  856. DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
  857. and colormaps for the actual windows instead.  Also changed to
  858. inherit colormaps and windows from parent by default.
  859.  
  860. 1/21/93 (new features) Added new winfo options "cells", "depth", and
  861. "visual".
  862.  
  863. 1/23/93 (bug fix) Fixed problem with text display that could result
  864. in negative XCopyArea heights being sent to X server.  This causes some
  865. servers (e.g. some versions of OpenWindows) to crash.
  866.  
  867. 1/25/93 (new feature) Added -postcommand option to menus, so that menus
  868. can be reconfigured before each posting.
  869.  
  870. 1/29/93 (feature change) Changed %X and %Y in bindings so that they
  871. refer to the virtual root rather than the true root.  Although
  872. potentially incompatible, this change should almost always "do the
  873. right thing".
  874. *** POTENTIAL INCOMPATIBILITY ***
  875.  
  876. 1/31/93 (bug fix) Changed "send" code to grab server while updating
  877. the registry property (before this fix, two programs could allocate
  878. the same interpreter name if they started up simultaneously).  In
  879. order to make this fix I had to change the code for reclaiming
  880. names of dead interpreters in a way that sometimes allows dead
  881. interpreters to persist in the registry.
  882.  
  883. 2/1/93 (feature change) Changed entries to allow leftmost "visible"
  884. character to be the end of the text (i.e. no characters actually visible).
  885. This is needed so that the cursor can be displayed even if the last
  886. actual character is too wide to fit in the window.
  887.  
  888. 2/3/93 (bug fix) Fixed two bugs in tkFocus.c:  (a) FocusIn events
  889. were getting lost in some cases because the focus window hadn't been
  890. created yet (e.g. new top-level window pops up underneath the mouse);
  891. (b) Tk was accidentally triggering FocusOut events when the mouse
  892. moved from a top-level window to one of its children.
  893.  
  894. 2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
  895. it easier to wait for a new window to appear on the screen.
  896.  
  897. ---------------------- Release 3.1, 2/5/93 -------------------------
  898.  
  899. 2/10/93 (installation improvements) Makefile improvements:  added RANLIB
  900. variable for easier Sys-V installation, changed to use INCLUDE_DIR
  901. properly, and added SHELL variable for SGI systems.
  902.  
  903. ---------------------- Release 3.2, 2/11/93 -------------------------
  904.  
  905. 2/11/93 (new feature) Added "wm state" command, and improved wm so that
  906. the right thing will happen if you invoke "wm iconify" when a window is
  907. withdrawn.
  908.  
  909. 2/14/93 (bug fix) When -colormap option was used in generating Postscript
  910. for canvases, Tk didn't add an extra space after the color command.
  911.  
  912. 2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
  913. which will use the definition of EXTERN from tcl.h and work correctly
  914. in C++ programs.
  915.  
  916. 2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
  917. canvas items when the items were deleted.  As a result, they could
  918. suddenly re-appear for new items if the new items were allocated a
  919. record at the same addresses as the old ones.
  920.  
  921. 2/18/93 (feature reversal) Changed "after" back again, so that it sleeps
  922. *without* responding to events when it is invoked with just one argument;
  923. can always use tkwait plus after with additional arguments to achieve
  924. the effect of responding to events.
  925. *** POTENTIAL INCOMPATIBILITY ***
  926.  
  927. 2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
  928. set correctly for new top-level windows on different screens than their
  929. parents (the bug results in X protocol errors: "invalid Colormap
  930. parameter").
  931.  
  932. 2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
  933. "#!/usr/local/bin/wish" to reflect new location of binary.
  934.  
  935. 2/22/93 (new feature) Added new reliefs "groove" and "ridge".
  936.  
  937. 2/25/93 (new feature) Added new built-in bitmaps:  "error", "hourglass",
  938. "info", "question", "questhead", and "warning".  Also added new demo in
  939. "widget" to display all of these (under the Miscellaneous menu).
  940.  
  941. 2/25/93 (improved implementation) Changed DrawText procedure in
  942. prolog for outputting Postscript from canvases to use stringwidth
  943. instead of charpath+pathbbox:  avoids limitcheck problems with long
  944. strings, and also properly includes space characters in calculation.
  945.  
  946. 2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
  947. menu traversal to mis-behave when menu had no entries.
  948.  
  949. 2/26/93 (new feature) Added "wm frame" command.
  950.  
  951. 3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
  952. pull-down menus were sometimes unresponsive.  Modified tk.tcl to ignore
  953. the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
  954. release simulated button grabs correctly.
  955.  
  956. 3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
  957. which caused text to be displayed at the wrong horizontal position in
  958. several places (labels/buttons, listboxes, canvas text, scales).  This
  959. change will cause slight changes in the way certain widgets are
  960. displayed.
  961.  
  962. 3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
  963. zero values in entryPtr->avgWidth.
  964.  
  965. 3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
  966. Changed to use virtual-root coordinates when a virtual-root window
  967. manager is being used.  Before this fix, "winfo containing" didn't
  968. return the correct window under virtual-root window managers.
  969.  
  970. 3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
  971. manager over position of window;  it just takes what the window manager
  972. gives it.
  973.  
  974. 3/21/93 (new feature) Changed menus to display cascade entries with
  975. standard Motif arrows at right side.a
  976.  
  977. 3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
  978. get trashed with the integer value 1.
  979.  
  980. 3/22/93 (bug fix) Canvas text didn't print correctly if it contained
  981. an open paren (or other special character) immediately followed by
  982. an octal digit.
  983.  
  984. 3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
  985. where two or more groups of lines both got taller at the same time
  986. (e.g. from tag changes), causing two separate bit copies where the
  987. first bit copy's target area overlapped the source area for
  988. the second bit copy.
  989.  
  990. 4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
  991. if that's supported by the Postscript interpreter.  Also added workaround
  992. for bug in NeWSprint related to stipple fills.
  993.  
  994. 4/1/93 (bug fixes) Made various changes to focusing and grabs to
  995. eliminate extraneous focus events and generally improve behavior.
  996.  
  997. 4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
  998. manager to map or reconfigure a window:  this led to deadlock in some
  999. situations, such as creating a new top-level window with a grab held.
  1000.  
  1001. 4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
  1002. across the screen in some situations.  Also fixed problem where rapid
  1003. posting and unposting of cascaded submenus (or menus?) could cause Tk
  1004. to become confused about whether or not a window is mapped (added
  1005. TkWmUnmapWindow procedure to make top-level unmaps synchronous).
  1006.  
  1007. 4/24/93 (feature change) Changed the "after" command to allow times
  1008. less than or equal to 0, and to use 0 whenever they occur.
  1009.  
  1010. 4/26/93 (new feature) Implemented security check for "send" as proposed
  1011. by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
  1012. access control is enabled and (b) the list of authorized hosts is
  1013. empty.  In other words, you have to use xauth to use send.  This feature
  1014. can be disabled by setting the TK_NO_SECURITY flag at compile-time.
  1015.  
  1016. 5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
  1017. real values as Tcl results.  This potentially allows higher precision.
  1018. Switched to use %.15g whenever printing reals in Postscript files.
  1019. However, the change Tcl_PrintDouble causes incompatibilities.  For
  1020. now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
  1021. Tk 4.0 will delete the macro, and you can also delete it now if you
  1022. want the better (but incompatible) behavior.
  1023.  
  1024. 5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
  1025. closeness calculations for canvas oval items.
  1026.  
  1027. 5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
  1028. value in tkBind.c, which could cause incorrect %-substitutions in event
  1029. bindings in a few exotic cases.
  1030.  
  1031. 6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
  1032. Makefile format changed, and Tcl is no longer automatically included
  1033. in Tk releases.
  1034.  
  1035. 6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
  1036. during redisplay of canvases.
  1037.  
  1038. 6/9/93 (feature improvement) Modified default bindings for entries to
  1039. keep one character visible to the left of the cursor during backspaces.
  1040.  
  1041. 6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
  1042. future patch releases, and also added tk_patchLevel variable to make the
  1043. patch level available in scripts.
  1044.  
  1045. 6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
  1046. very large scale values.
  1047.  
  1048. 6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
  1049. the "coords" widget command was used to add one new coordinate.
  1050.  
  1051. 6/26/93 (bug fix) Changed canvases to handle large stipple patterns
  1052. gracefully (stipples used to jump around during redisplay and lose
  1053. coherency).
  1054.  
  1055. 7/1/93 (syntax change, new feature) Implemented the new packer syntax
  1056. as described in the book.  For now the old syntax will continue to be
  1057. supported too.  Converting over is straightforward except (a) use
  1058. "-anchor" instead of "frame", and (b) padding is different (separate
  1059. internal and external padding, plus pad amounts are *on each side*
  1060. instead of total).  Also added "pack propagate" command for keeping
  1061. the packer from setting the master's requested size.
  1062.  
  1063. 7/1/93 Changed copyright notices.  The effect is the same as with the
  1064. old notices, but the new notices more clearly disclaim liability.
  1065.  
  1066. 7/7/93 (new feature) Added support for window stacking order.  Windows
  1067. will now stack in the order created (most recent on top), plus "raise"
  1068. and "lower" commands may be used to restack (Tk_RestackWindow procedure
  1069. is available from C level).
  1070.  
  1071. 7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
  1072. call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
  1073. application name, and added default Tcl_AppInit procedure for wish.
  1074. Also added tkTest.c to hold C code for testing.
  1075.  
  1076. 7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
  1077. up properly before exiting.  It replaces the Tcl "exit" command, and
  1078. can be used in place of "destroy .".
  1079.  
  1080. 7/9/93 (new features) Added tk_dialog library procedure that creates
  1081. dialogs with a bitmap, message, and any number of buttons.  Also changed
  1082. default tkerror procedure to use tk_dialog plus offer the user a chance
  1083. to see a Tcl stack trace.
  1084.  
  1085. -------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
  1086.  
  1087. 7/12/93 (configuration changes) Eliminated leading blank line in
  1088. configure script;  provided separate targets in Makefile for installing
  1089. binary and non-binary information; fixed -lnsl and -lsocket handling
  1090. in configure; added autoconf support for fd_set type; check for various
  1091. typedefs like mode_t and size_t, and provide substitutes if they
  1092. don't exist; don't include tkAppInit.o in libtk.a; try to locate the
  1093. X includes and library in all of the standard places for various systems.
  1094.  
  1095. 7/14/93 (new feature) Modified tkMain.c so that it stores the value
  1096. of the -display command-line option into the DISPLAY environment
  1097. variable, if it is specified.
  1098.  
  1099. 7/15/93 (feature removal) Removed auto-initialization feature from
  1100. Tk_ConfigureWidget, so that you must once again initialize all fields
  1101. of a widget record before calling Tk_ConfigureWidget.  This restores
  1102. the behavior back to what it was in Tk 3.2.
  1103.  
  1104. 7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
  1105. unless it is explicitly requested in a binding.  Without this fix,
  1106. buttons and menus and other things didn't work if the Caps Lock key
  1107. was active.
  1108.  
  1109. -------------------- Release 3.3 Beta 2, 7/21/93 -------------------------
  1110.  
  1111. 7/21/93 (new feature) Change "make install" so that it will modify the
  1112. #! lines on demo scripts to reflect the place where the wish binary
  1113. is installed.
  1114.  
  1115. 7/23/93 (new feature) Added Tk_MainWindow procedure that returns the
  1116. main window associated with a Tcl interpreter.  This is intended for
  1117. use by Tcl_AppInit and other initialization procedures.
  1118.  
  1119. 7/24/93 (configuration improvements) Changed configure script not to
  1120. omplain about "fd_set" missing if it's defined in <sys/select.h>.
  1121.  
  1122. 7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
  1123. sometimes occurring when several top-level windows got created
  1124. at the same time, due to wrong choice of sibling when stacking
  1125. windows.
  1126.  
  1127. 8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
  1128. to wish main program:  makes prompts user-settable.
  1129.  
  1130. 8/19/93 (bug fix) Bindings to event sequences like "aD" never matched
  1131. because the Shift key has to be pressed before D.  Modified Tk to
  1132. ignore extraneous keypresses if they are for modifier keys.
  1133.  
  1134. 8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
  1135. procedures to use it and Tcl_Init.  Added support for .wishrc file.
  1136.  
  1137. 8/28/93 (new feature) The main window is now a legitimate toplevel
  1138. widget.
  1139.  
  1140. -------------------- Release 3.3 Beta 3, 8/30/93 -------------------------
  1141.  
  1142. 9/2/93 (bug fix) The packer wasn't always relaying out a master after
  1143. changes to some of the configuration options of its slaves.
  1144.  
  1145. 9/2/93 (bug fix) The binding mechanism made it impossible for patterns
  1146. like <Double-ButtonRelease-1> to ever match.
  1147.  
  1148. 9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
  1149. if Postscript is generated but no -bitmap option has been specified.
  1150.  
  1151. 9/4/93 (enhancement) Slight improvements to menu traversal:  set menu
  1152. traversal bindings for menubar window in tk_menuBar, plus trigger
  1153. traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.
  1154.  
  1155. 9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
  1156. prevent events from triggering bindings.
  1157.  
  1158. 9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
  1159. property from root window of screen 0, rather than using default
  1160. screen.
  1161.  
  1162. 9/9/93 (bug fix) Entry widgets weren't allocating quite enough width
  1163. for themselves.  Fixed this and changed the size computation to match
  1164. what's done for buttons and texts.
  1165.  
  1166. 9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
  1167. instead always invoke "exit" Tcl command so that application can redefine
  1168. the command to do additional cleanup.
  1169.  
  1170. -------------------- Release 3.3, 9/29/93 -------------------------
  1171.  
  1172. 9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.
  1173.  
  1174. 9/30/93 (bug fix) Binding event sequences such as <Right> were being
  1175. misprinted as ASCII characters such as "S".
  1176.  
  1177. 10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
  1178. got unmapped, which caused problems for window items whose windows weren't
  1179. descendants of the canvas (they got left on the screen).
  1180.  
  1181. 10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
  1182. to have a special undocumented meaning (fd was display);  eliminated this
  1183. special interpretation.
  1184.  
  1185. 10/7/93 (configuration change) Eliminated dependency of tkMain.c on
  1186. tkInt.h and tkConfig.h, so that it's easier for people to copy the file
  1187. out of the source directory to make modified versions.
  1188.  
  1189. 10/8/93 (bug fix) 3.0 introduced a bug where the class of the application
  1190. wasn't being set properly, so options based on the application class
  1191. weren't triggering.  Fixed by adding new argument to Tk_CreateMainWindow.
  1192.  
  1193. 10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
  1194. cause core dumps due to halfwayLinePtr not getting set correctly.
  1195.  
  1196. 10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
  1197. display N characters in an entry with "-width N" (tended to scroll the
  1198. entry so that only N-1 characters were visible at once).
  1199.  
  1200. 10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
  1201. weren't overriding xmkmf like they were supposed to.
  1202.  
  1203. 10/23/93 (new feature) Allow negative scale factors in canvas "scale"
  1204. widget command.
  1205.  
  1206. 10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
  1207. window was deleted, causing core-dumps in some cases.
  1208.  
  1209. 10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
  1210. the "anchor" mark exists.
  1211.  
  1212. 10/27/93 (bug fix) Fixed core dump that could occur in a text widget if
  1213. the scroll command modifies the text.
  1214.  
  1215. 11/1/93 (bug fix) Change texts so that the -yscrollcommand option is
  1216. invoked at display time, not when the window is re-layed out.  This
  1217. eliminated various core dumps that could occur if -yscrollcommand modified
  1218. the text.
  1219.  
  1220. -------------------- Release 3.4, 11/04/93 -------------------------
  1221.  
  1222. Note: there is no 3.5 release.  It was flawed and was thus withdrawn
  1223. shortly after it was released.
  1224.  
  1225. 11/12/93 (bug fix) TkMain.c didn't compile on some systems because of
  1226. R_OK in call to "access".  Changed to eliminate call to "access".
  1227.  
  1228. -------------------- Release 3.6, 11/26/93 -------------------------
  1229.  
  1230. 11/10/93 (bug fix) Packer and placer didn't always reposition a window
  1231. correctly if it was managed inside a neice or lower descendant (using
  1232. "-in" option) and the neice's parent moved.
  1233.  
  1234. 11/24/93 (bug fix) Fixed time problem in selection (retrievals could
  1235. fail if retriever hasn't received any X events since selection was
  1236. made, so that time of retrieval appears to be older than time of
  1237. selection).  Selection code is now much less picky about times, both
  1238. on retrieving and supplying sides.
  1239.  
  1240. 12/2/93 (new feature) Changed arrow-head drawing code for canvas
  1241. lines to draw a 0-width outline in addition to filling the area:
  1242. this produces much nicer, more symmetrical displays.
  1243.  
  1244. 12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
  1245. when its state was internally inconsistent, which could cause
  1246. core dumps in some situations (e.g. if tkerror used the same color
  1247. that caused colors to run out).  Changed notification to occur
  1248. as a when-idle handler.
  1249.  
  1250. 12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
  1251. in the list of grabbed events, so pointer motion couldn't be tracked
  1252. outside the grabbing application.
  1253.  
  1254. 12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
  1255. when they only contained two points.
  1256.  
  1257. 12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
  1258. errors during window creation could cause Destroy events to be generated
  1259. for a window that was never completely initialized.
  1260.  
  1261. 12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
  1262. dumps at line 1467 under exmh.  The exact situation is that a text
  1263. widget was being redisplayed at a time when it had a -yscrollcommand
  1264. option but hadn't yet been mapped onto the screen.
  1265.  
  1266. 12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
  1267. with non-default visuals still inherited border pixmap from parent (root),
  1268. which could cause visual clash and X error.
  1269.  
  1270. 12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
  1271. error in the information passed to scroll commands.
  1272.  
  1273. 12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
  1274. some situations if a master with siblings packed "-in" it was deleted.
  1275.  
  1276. 12/18/93 (bug fix) Added "compat" directory to distribution, since it's
  1277. referenced by tkConfig.h on some systems.
  1278.  
  1279. 12/18/93 (performance improvement) Improved performance of appending to
  1280. a listbox, so that inserting N items doesn't take N**2 time.
  1281.  
  1282. 12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
  1283. for the oval to stick out past the outline.
  1284.  
  1285. 1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
  1286. that they won't run out in long running applications.  There are three
  1287. new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
  1288. Modified all Tk code to use these procedures, so wish applications should
  1289. now be able to run forever without running out of identifiers.
  1290.  
  1291. 1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
  1292. cursors, which caused memory leaks in programs that changed cursors
  1293. frequently.
  1294.  
  1295. 1/21/94 (bug fix) Fixed bug in scales that caused them to loop
  1296. infinitely drawing tick-marks when -from and -to were the same.
  1297.  
  1298. 2/2/94 (bug fix) Fixed problem where messages that contained tabs
  1299. didn't always compute the correct size, so that text spilled off
  1300. the right edge.  The fix adds an extra "tabOrigin" parameter to
  1301. the internal procedures TkMeasureChars, TkDisplayChars, and
  1302. TkUnderlineChars.
  1303.  
  1304. 2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
  1305. it to read past the initialized part of dispPtr->modKeyCodes.
  1306.  
  1307. 2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
  1308. that the "current" character got stuck if a grab occurred while a
  1309. mouse button was down.  It would get unstuck until after the
  1310. next button press and release.
  1311.  
  1312. 2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
  1313. canvases) so that it correctly prints all of the characters in the
  1314. ISO Latin-1 character set.
  1315.  
  1316. 2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
  1317. result across the execution of binding scripts.  Otherwise if an event
  1318. triggers in the middle of some other script (e.g. a destroy event during
  1319. window creation, because there was an error in the creation command),
  1320. the intepreter's result gets lost.
  1321.  
  1322. 2/19/94 (bug fix) Fixed bug in dealing with results of sent command
  1323. that could cause them to get lost in some situations.
  1324.  
  1325. 2/21/94 (bug fix) Don't let user close a dialog window created by
  1326. tk_dialog, since this would cause tk_dialog to hang:  force the user
  1327. to select one of the dialog's buttons.
  1328.  
  1329. 2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
  1330. correctly handle changes in the number of points (via "coords"
  1331. widget command).
  1332.  
  1333. 2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
  1334. because they overflowed the 64-KB limit on strings in Postscript.
  1335. Changed canvas printing to split up large bitmaps into mutliple
  1336. smaller ones for printing.
  1337.  
  1338. 2/25/94 (bug fix) The "." window was being set up with -width
  1339. and -height options, which interfered with geometry management (any
  1340. configuration change on "." causes the window to change size to
  1341. 200x200, then change back again).
  1342.  
  1343. 2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
  1344. event handler for a window deleted the window's parent.
  1345.  
  1346. 3/3/94 (new features) Changes to binding mechanism:
  1347.     - The modifiers for "Alt", "Meta", and "M" are now computed by
  1348.       examining the modifier map, rather than being hardwired to
  1349.       M2, M1, and M1.
  1350.     - When processing events, one script is invoked for each object
  1351.       in the list passed to Tk_BindEvent, rather than stopping as
  1352.       soon as a script is invoked for some object.  The "break" and
  1353.       "continue" commands can be used within a script to abort all
  1354.       scripts for the event or the current one.
  1355.       *** POTENTIAL INCOMPATIBILITY ***
  1356.     - Added "bindtags" command so that new binding groups can be
  1357.       defined for widgets and the evaluation order can be changed.
  1358.     - When matching events to bindings, extra modifiers are now ignored,
  1359.       as if "Any" were specified for every event.  The "Any" modifier
  1360.       is still recognized, but it is ignored and is deprecated.
  1361.       *** POTENTIAL INCOMPATIBILITY ***
  1362.     - In % sequences that print window identifiers (e.g. %a and %S), print
  1363.       in hexadecimal rather than decimal, for consistence with "winfo id".
  1364.       *** POTENTIAL INCOMPATIBILITY ***
  1365.     - The "bind" command no longer supports the event types CirculateRequest,
  1366.       ConfigureRequest, MapRequest, or ResizeRequest.  These event types
  1367.       are somewhat dangerous, and they never worked anyway.
  1368.  
  1369. 3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
  1370. It appears that this command never really worked at all, but it should
  1371. work OK now.
  1372.  
  1373. 3/14/94 (feature changes) Removed several obsolete features:
  1374.     - Eliminated "enable" and "disable" widget commands for menus.
  1375.       *** POTENTIAL INCOMPATIBILITY ***
  1376.     - Eliminated "activate" and "deactivate" widget commands for buttons,
  1377.       checkbuttons, radiobuttons, and menubuttons.
  1378.       *** POTENTIAL INCOMPATIBILITY ***
  1379.     - Removed -geometry option for frames and toplevels:  it causes
  1380.       problems when .Xdefaults files contain entries like
  1381.       "*geometry: +0+0".  Must use -width and -height instead.
  1382.       *** POTENTIAL INCOMPATIBILITY ***
  1383.     - Desupported "tkVersion" variable: use "tk_version" instead.
  1384.       *** POTENTIAL INCOMPATIBILITY ***
  1385.  
  1386. 3/16/94 (feature changes) Changes to listboxes:
  1387.     - Eliminated -geometry option (it causes problems when .Xdefaults
  1388.       files contain entries like "*geometry: +0+0").  Added -width
  1389.       and -height options to use instead.
  1390.       *** POTENTIAL INCOMPATIBILITY ***
  1391.  
  1392. 3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
  1393. properly cleaned up after window deletion;  this could cause the wrong
  1394. value from the option database to be used under some conditions.
  1395.  
  1396. 3/25/94 (new features) Changes to geometry management:
  1397.     - Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures
  1398.       to solve problems with -in windows.  Modified the packer, the
  1399.       placer, and canvases to use them.
  1400.     - Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc *
  1401.       to a pointer to a structure with additional information about
  1402.       the geometry manager, such as name and procedure to call when
  1403.       slaves are stolen.
  1404.       *** POTENTIAL INCOMPATIBILITY ***
  1405.  
  1406. 3/28/94 (new feature) Overhauled event management:
  1407.     - Added "cancel" option to the "after" command so that you can
  1408.       cancel previously-scheduled commands.
  1409.     - Separated X-specific stuff from generic event management.  The
  1410.       file tkEvent.c can now be used stand-alone without the rest of Tk.
  1411.       See the manual entry for Tk_EventInit for information on which
  1412.       procedures are available this way.
  1413.     - Added Tk_CreateFileHandler2 procedure, which provides a lower-level
  1414.       and more powerful form of file event handler.
  1415.     - Fixed bug in Tk_DoOneEvent where an infinite loop could occur if
  1416.       the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously
  1417.       (there were bugs with several other combinations too;  all should
  1418.       be fixed now).
  1419.  
  1420. 3/28/94 (new feature) Added "fileevent" command, which allows event-
  1421. driven I/O in the style of Mark Diekhans' "addinput" command.
  1422.  
  1423. 4/11/94 (new feature) Better support for colormaps and visuals:
  1424.     - Added new -colormap and -visual options to toplevels and frames.
  1425.     - Added "winfo visualsavailable" command.
  1426.     - Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS
  1427.       to Tk_SetWindowColormap.
  1428.     - Added new library procedures Tk_GetVisual, Tk_GetColormap,
  1429.       and Tk_FreeColormap.
  1430.  
  1431. 4/11/94 (bug fix) Fixed core dump that used to occur when specifying
  1432. an iconwindow ("wm iconwindow") for a toplevel on a different screen
  1433. than the main window.
  1434.  
  1435. 4/23/94 (new feature) Added support for images, including the following:
  1436.     - New "image" command for creating images.
  1437.     - Built-in image type: bitmap.
  1438.     - New "image" item type in canvases.
  1439.     - Labels, buttons, checkbuttons, radiobuttons, menubuttons, and
  1440.       menu entries now support a -image option for displaying images.
  1441.     - Tk_CreateImageType and Tk_ImageChanged procedures, for defining
  1442.       new types of images in C.
  1443.     - Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage
  1444.       procedures, for using images in widgets.
  1445.  
  1446. 5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
  1447. Tk_3DHorizontalBevel.
  1448.  
  1449. 5/11/94 (new features) Major overhaul of text widgets:
  1450.     - Implemented embedded windows and "window" widget command.
  1451.     - Added new configuration options for tags: -justify, -lmargin1,
  1452.       -lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3.
  1453.       See the "Display styles" widget demo for examples.
  1454.     - Added new configuration options for texts: -spacing1, -spacing2,
  1455.       and -spacing3.
  1456.     - Added "tagList" option to "insert" widget command to control
  1457.       tags on new text.  Made tagged regions so they aren't sticky on
  1458.       either side:  new characters get a tag only if the old chars. on
  1459.       both sides had it.
  1460.       *** POTENTIAL INCOMPATIBILITY ***
  1461.     - Added gravity for marks, and "mark gravity" widget command.
  1462.     - Added horizontal scrolling, "xview" widget command, -xscrollcommand
  1463.       option.  Changed "scan" widget commands to support horizontal
  1464.       scrolling.
  1465.       *** POTENTIAL INCOMPATIBILITY ***
  1466.     - Added "search" widget command for searching (either exact matches
  1467.       or regular expressions).
  1468.     - New widget commands: bbox, dlineinfo, and see.
  1469.     - Changed implementation of bindings so that Enter and Leave
  1470.       events are not generated unless the tag has just become present
  1471.       (or just ceased to be present) on the current character.  Also
  1472.       changed bindings to process separately for each tag, rather than
  1473.       having high-priority tags override low-priority ones.
  1474.     - The "end" index now refers to the character after the last newline
  1475.       rather than the newline itself.  You can now tag the final newline
  1476.       and set a mark after the final newline.
  1477.     - Deletions of the "sel" tag and the "insert" and "current" marks
  1478.       are now ignored silently, rather than generating errors.  This means
  1479.       you can do things like "eval .t tag delete [.t tag names]".
  1480.  
  1481. 5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
  1482. text.
  1483.  
  1484. 5/20/94 (new feature) Added "bell" command to ring the display's bell.
  1485.  
  1486. 5/20/94 (new feature) Incorporated "square" demonstration widget into
  1487. tktest application.
  1488.  
  1489. 5/20/94 (new features) Changed wish application (tkMain.c):
  1490.     - wish no longer processes the -help option.
  1491.       *** POTENTIAL INCOMPATIBILITY ***
  1492.     - The wish main program is now called Tk_Main;  tkAppInit.c has a
  1493.       "main" procedure that calls Tk_Main.  This makes it easier to use
  1494.       Tk with C++ programs, which need their own main programs, and it
  1495.       also allows an application to prefilter the argument list before
  1496.       calling Tk_Main.
  1497.       *** POTENTIAL INCOMPATIBILITY ***
  1498.     - The application's class is now the same as its name (except the
  1499.       first letter is capitalized), instead of "Tk".
  1500.       *** POTENTIAL INCOMPATIBILITY ***
  1501.     - The -file keyword is no longer required:  the script file name can
  1502.       be provided as the first argument without being preceded by "-file",
  1503.       as in tclsh.  For backward compatibility the "-file" keyword is
  1504.       ignored if it is the first argument, but it is deprecated.
  1505.  
  1506. 5/26/94 (feature removed) Removed support for "fill" justify mode from
  1507. Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option.  None
  1508. of the built-in widgets ever supported this mode anyway.
  1509. *** POTENTIAL INCOMPATIBILITY ***
  1510.  
  1511. 5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
  1512. that it converts reals to strings.  This means that floating-point
  1513. values will be generated in some cases where integer-like values were
  1514. generated before.
  1515. *** POTENTIAL INCOMPATIBILITY ***
  1516.  
  1517. 6/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
  1518. The old "pack info" command is no longer available.
  1519. *** POTENTIAL INCOMPATIBILITY ***
  1520.  
  1521. 6/20/94 (feature changes) Overhaul of entry widgets:
  1522.     - Added "-justify" option.
  1523.     - Added "-show" option to make entries easier to use for passwords.
  1524.     - Added "cget" widget command.
  1525.     - Added "selection range" and "selection present" widget commands.
  1526.     - Added "anchor" symbolic index.
  1527.     - Changed "-scrollcommand" option to "-xscrollcommand", "view"
  1528.       widget command to "xview", for compatibility with other widgets.
  1529.       *** POTENTIAL INCOMPATIBILITY ***
  1530.     - Changed sel.last to refer to character just *after* last one
  1531.       selected, again for compatibility with other widgets.
  1532.       *** POTENTIAL INCOMPATIBILITY ***
  1533.     - For "delete" widget command, second index now refers to character
  1534.       just *after* last one to delete.
  1535.       *** POTENTIAL INCOMPATIBILITY ***
  1536.     - Overhauled bindings to be more Motif-compatible and to include
  1537.       common Emacs bindings for editing.
  1538.     - Changed -width option:  if specified as 0, widget sizes to fit
  1539.       its current text.
  1540.  
  1541. 6/11/94 (new features) Improved Motif compatibility:
  1542.     - Added "-highlightwidth" and "-highlightcolor" options to all widgets.
  1543.  
  1544. 6/27/94 (bug fix) Postscript generation for text items in canvases was
  1545. not justifying the text properly when a -width was specified that was
  1546. longer than the longest line.
  1547.  
  1548. 6/27/94 (bug fix) "winfo exists" used to report a window as existing
  1549. if it was in the process of being destroyed (i.e., a destroy handler
  1550. is in the middle of execution).  Changed to report it as non-existent
  1551. under these conditions.
  1552. *** POTENTIAL INCOMPATIBILITY ***
  1553.  
  1554. 7/11/94 (bug fix) Selections claimed via "selection own" weren't always
  1555. being cleared properly when the selection was claimed away.  Also fixed
  1556. bug where Tk wasn't properly claiming the selection, if there haven't
  1557. been any recent X events at the time of the claim.
  1558.  
  1559. 7/13/94 (feature changes) Overhaul of scrollbar widgets:
  1560.     - New widget commands: "activate", "cget", "fraction", and "identify".
  1561.     - New options: -activebackground, -activerelief, -highlightcolor,
  1562.       -jump, -highlightthickness, and -troughcolor.  What used to be
  1563.       -background is now -troughcolor, -foreground is now -background,
  1564.       and -activeforeground is now -activebackground.
  1565.       *** POTENTIAL INCOMPATIBILITY ***
  1566.     - Added new syntax for "set" command, "get" result, and generated
  1567.       commands.  Changed other widgets to use the new syntax.
  1568.     - Moved the bindings out of C and into Tcl scripts, using the new
  1569.       options and widget commands.  Added support for all Motif
  1570.       bindings, plus jump scrolling and cancelling of slider drags.
  1571.  
  1572. 7/16/94 (bug fix) Canvases assumed that the Leave event for one item
  1573. didn't modify or delete the next current item;  this could cause core
  1574. dumps under some conditions.
  1575.  
  1576. 7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
  1577. is invoked as an idle handler.  If tkerror generates a break exception
  1578. then all other queued reports are aborted.
  1579.  
  1580. 8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
  1581. canvases, resulting in the same time being used for both.
  1582.  
  1583. 8/16/94 (bug fix) "tkwait variable" command didn't detect errors in
  1584. variable name, such as trying to wait for an entire array.
  1585.  
  1586. 9/2/94 (new features) Overhaul of scale widgets:
  1587.     - Floating-point values are supported now, following Paul Mackerras'
  1588.       "fscale" widget.  Added "-resolution" and "-digits" options.
  1589.     - Added "-variable" option to link scale to variable, following
  1590.       Henning Schulzrinne's implementation.
  1591.     - Added focus highlight (-highlightthickness and -highlightcolor
  1592.       options).
  1593.     - Added new widget commands "cget",  "coords", "identify", plus
  1594.       improved "get";  removed wired-in bindings, added complete set
  1595.       of Motif bindings via Tcl scripts.
  1596.     - Changed -sliderforeground option to -background, -background to
  1597.       -troughColor, -activeforeground to -activebackground.
  1598.       *** POTENTIAL INCOMPATIBILITY ***
  1599.     - Moved value label from below horizontal scales to above the scale,
  1600.       for Motif compliance.
  1601.  
  1602. 9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
  1603. command under some conditions (window already at the top of the stack).
  1604.  
  1605. 9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
  1606. widgets:
  1607.     - Added focus highlight (-highlightthickness and -highlightcolor
  1608.       options).
  1609.     - Added new widget command "cget".
  1610.     - Changed -selector option to -selectcolor, and changed its meaning
  1611.       too: empty no longer means don't draw the indicator;  it means
  1612.       don't use a special color when selected.
  1613.       *** POTENTIAL INCOMPATIBILITY ***
  1614.     - Added -indicatoron (controls whether indicator is displayed) and
  1615.       -selectimage (gives special image to display when selected) options.
  1616.     - Modified bindings to be more Motif-like, added binding for space
  1617.       key.
  1618.     - Changed padding defaults to give widgets correct Motif appearance
  1619.       by default.  Also, changed to ignore padding options when displaying
  1620.       an image or bitmap.
  1621.       *** POTENTIAL INCOMPATIBILITY ***
  1622.     - Can now display text on multiple lines:  newlines cause line breaks,
  1623.       and word wrapping can be requested with -wraplength option.  Also
  1624.       added -justify and -underline options.
  1625.     - The -value option for radiobuttons can now have an empty string as
  1626.       its value;  it no longer defaults to the name of the widget.
  1627.       *** POTENTIAL INCOMPATIBILITY ***
  1628.  
  1629. 9/13/94 (new features) Modified both canvases and messages to support
  1630. -highlightthickness and -highlightcolor options plus "cget" widget
  1631. command.
  1632.  
  1633. 9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
  1634. to use it.  Also changed Tk_SetGrid so that at most one window per
  1635. toplevel can have gridding enabled.
  1636.  
  1637. 9/23/94 (new features) Major overhaul of listbox widgets:
  1638.     - Added focus highlight (-highlightthickness and -highlightcolor
  1639.       options).
  1640.     - Added new widget command "cget".
  1641.     - Revised selection commands to support single selections as well
  1642.       as multiple disjoint selections;  syntax of "selection" widget
  1643.       command has changed to support this.  Added new option -selectmode
  1644.       for specifying which mode to use.  Default is single selection;
  1645.       tk_listboxSingleSelect procedure no longer exists.  Selections
  1646.       now return as items separated by newlines instead of a list whose
  1647.       elements are the items.
  1648.       *** POTENTIAL INCOMPATIBILITY ***
  1649.     - Extended "get" widget command to allow many items to be retrieved
  1650.       at once.
  1651.     - Added "bbox" widget command for finding position of an element on
  1652.       screen.
  1653.     - Added "activate" command to mark element with traversal focus.
  1654.     - Extended index mechanism to support new types of indices:
  1655.       "active", "anchor", "@x,y".
  1656.     - Added "see" widget command.
  1657.     - Revised bindings to include all Motif features except for AddMode.
  1658.     - If -width or -height option is <= 0, the widget requests a size just
  1659.       large enough to hold all of its text.
  1660.  
  1661. 10/6/94 (new features) Overhaul of menubuttons:
  1662.     - Added focus highlight (-highlightthickness and -highlightcolor
  1663.       options).
  1664.     - Added new widget command "cget".
  1665.     - Added -indicatoron option to display option menu indicator.
  1666.     - The -menu option must be a child of the menubutton.
  1667.       *** POTENTIAL INCOMPATIBILITY ***
  1668.  
  1669. 10/6/94 (new features) Overhaul of menu widgets:
  1670.     - Added new widget commands "cget" and "entrycget".
  1671.     - Changed the implementation of tear-off menus to be more
  1672.       Motif-like;  added -tearoff option for specifying whether
  1673.       tearoff entry is displayed.
  1674.     - Changed interpretation of "@y" index:  it now returns the
  1675.       closest entry, rather than "none" if y is outside the menu's
  1676.       range.
  1677.       *** POTENTIAL INCOMPATIBILITY ***
  1678.     - The -menu option for a cascade entry must now be a child of
  1679.       the menu.
  1680.       *** POTENTIAL INCOMPATIBILITY ***
  1681.     - Added "type" widget command, so that you can query the type of
  1682.       an entry.
  1683.     - Added -foreground, -activeforeground, -selectcolor, -indicatoron,
  1684.       -image, and -selectimage options to menu entries.
  1685.     - Changed "selector" menu option to "selectColor" for Motif compliance.
  1686.       *** POTENTIAL INCOMPATIBILITY ***
  1687.     - Added -relief option for menus, just for consistency with other
  1688.       widgets (it was implicitly "raised" before).
  1689.  
  1690. 10/6/94 (feature change) Completely overhauled the bindings for menus
  1691. and menubuttons.  They now fit better with other Tk 4.0 facilities,
  1692. such as the new binding mechanism, and they provide better Motif
  1693. compliance (e.g. keyboard traversal of submenus).  Also, the bindings
  1694. now support option menus, popup menus, and proper Motif tear-off
  1695. menus.
  1696.  
  1697. 10/6/94 (obsolete features) The procedures tk_menuBar and
  1698. tk_bindForTraversal are no longer needed in Tk 4.0.  They still exist
  1699. for compability, but they do nothing.
  1700.  
  1701. 10/6/94 (new procedures) Added "tk_popup" procedure for posting a
  1702. popup menu, and "tk_optionMenu" for creating an option menubutton
  1703. and its associated menu.
  1704.  
  1705. 10/6/94 (change in name) The variable "tk_priv" has been renamed
  1706. to "tkPriv" to reflect that fact that it is private to Tk now.
  1707. This shouldn't cause any problems, since no-one except Tk should
  1708. have been using it before anyway (right?).
  1709.  
  1710. 10/6/94 (bug fix) Fixed bug in texts where sometimes the text would
  1711. stop tracking mouse motion (the "current" item wouldn't get updated)
  1712. because the text widget missed a ButtonRelease event.
  1713.  
  1714. 10/20/94 (new features) Overhauled selection code to support multiple
  1715. selections (primary, secondary, etc.) and multiple displays:
  1716.     - Changed "selection" command to support new options such as
  1717.       "-displayof" and "-selection".  Old command formats are still
  1718.       supported for compatibility, but they are no longer documented
  1719.       and are deprecated.
  1720.     - Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and
  1721.       Tk_ClearSelection to take additional "selection" argument.
  1722.       *** POTENTIAL INCOMPATIBILITY ***
  1723.     - Selection targets APPLICATION and WINDOW_NAME have been replaced
  1724.       by TK_APPLICATION and TK_WINDOW.
  1725.       *** POTENTIAL INCOMPATIBILITY ***
  1726.  
  1727. 10/20/94 (new features) Added support for clipboard:
  1728.     - New "clipboard" command.
  1729.     - C procedures Tk_ClipboardClear and Tk_ClipboardAppend.
  1730.     - Bindings for "cut", "paste", and "copy" for text and entry widgets,
  1731.       plus "copy" binding for listboxes.
  1732.  
  1733. 10/24/94 (bug fix) Button widgets weren't checking for errors when
  1734. setting the values of associated variables.
  1735.  
  1736. 11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
  1737. from inside a <Destroy> binding.
  1738.  
  1739. 11/15/94 (new features) Overhaul of focus mechanism:
  1740.     - Added support for multiple displays:  separate focus windows are
  1741.       kept for each display.
  1742.     - Added support for keyboard traversal.
  1743.     - Changed focus model so Tk keeps track of a focus window for each
  1744.       top-level window and automatically sets the focus on Enter to the
  1745.       top-level.  Tk no longer synthesizes FocusIn and FocusOut events,
  1746.       but just uses the standard X mechanisms.  There is no "default"
  1747.       focus window anymore; the focus reverts to top-levels by default.
  1748.       *** POTENTIAL INCOMPATIBILITY ***
  1749.     - Changed focus command:  eliminated "focus default" and "focus none",
  1750.       added "-displayof" and "-lastfor" options.  An empty string is now
  1751.       used to signify "no focus" instead of "none".
  1752.       *** POTENTIAL INCOMPATIBILITY ***
  1753.     - Added library procedures tk_focusNext, tk_focusPrev, and
  1754.       tk_focusFollowsMouse.
  1755.     - Removed obsolete Tk_CreateFocusHandler:  must use FocusIn and
  1756.       FocusOut events now.
  1757.       *** POTENTIAL INCOMPATIBILITY ***
  1758.  
  1759. 11/23/94 (new features) Overhaul of "send" command:
  1760.     - Added support for multiple displays: -displayof option to "send".
  1761.     - Added asynchronous sends: -async option to "send".
  1762.     - Eliminated fixed timeouts on sends:  as long as the target
  1763.       application appears to exist, the send will wait for it.
  1764.     - Stale entries get removed from the application registry now,
  1765.       so "winfo interps" should never return non-existent applications.
  1766.     - Can change the name of an application with "tk appname" command.
  1767.       This is also the preferred way of querying the application name
  1768.       now.
  1769.     - The errorCode and errorInfo variables are now propagated back to
  1770.       the sender now, so a full stack trace is available.
  1771.     - Tk checks display security on each send now, instead of just during
  1772.       initialization, so changes in the security status are seen immediately
  1773.       by all applications.
  1774.     - The above changes required changes to the data formats used for
  1775.       communication between source and target applications, so Tk 4.0
  1776.       applications cannot send to, or be sent from, Tk 3.6 applications.
  1777.       *** POTENTIAL INCOMPATIBILITY ***
  1778.     - The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName.
  1779.       *** POTENTIAL INCOMPATIBILITY ***
  1780.  
  1781. 12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
  1782. since it is no longer needed.
  1783. *** POTENTIAL INCOMPATIBILITY ***
  1784.  
  1785. 12/7/94 (feature change) Changed the "wm" command so that top-level
  1786. windows are now resizable by default.  You can no longer specify
  1787. empty arguments to "wm maxsize" and "wm minsize".
  1788. *** POTENTIAL INCOMPATIBILITY ***
  1789.  
  1790. 12/8/94 (new feature) Added new "photo" image type using code provided
  1791. by Paul Mackerras:  currently supports only PPM "P6" format images.
  1792.  
  1793. 12/14/94 (new features) Canvas modifications:
  1794.     - Modified the interfaces between generic canvas code and the item
  1795.       types so that it's easy for people to write new item types outside
  1796.       of Tk.
  1797.     - Added support for transparent bitmap items:  just specify an
  1798.       empty string as the background color.
  1799.     - Changed the "xview" and "yview" commands for canvases to use the
  1800.       new scrolling syntax.
  1801.     - Eliminated -scrollincrement option.
  1802.       *** POTENTIAL INCOMPATIBILITY ***
  1803.  
  1804. 12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
  1805. scaled during a "scale" widget command, but the scaling was only
  1806. temporary and got lost on the next re-configure of the item.  The
  1807. correct behavior is for the arrowheads not to scale.
  1808.  
  1809. -------------------- Release 4.0b1, 12/23/94 -------------------------
  1810.  
  1811. 12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
  1812. size), fixed "install" target.
  1813.  
  1814. 1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
  1815. implicit conversions from prototypes don't work when compiling under
  1816. non-ANSI compilers.  Tk is now clean under gcc -Wconversion.
  1817.  
  1818. 1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
  1819. in tkCanvText.c:  caused tabs in canvas text items to get messed up.
  1820.  
  1821. 1/4/95 (bug fix) Canvases forgot to register the built-in types if
  1822. Tk_CreateItemType was called before a canvas widget was created.
  1823.  
  1824. 1/4/95 (bug fixes) Fixed glitches in various text bindings:
  1825.     - Up used to do nothing if the cursor was at 2.0.
  1826.     - Right used to make the cursor invisible if it was just before
  1827.       the final newline of the text.
  1828.     - Control-t didn't conform to Emacs;  made it conform to GNU Emacs.
  1829.     - Deleted Control-x binding, since it doesn't conform to anything and
  1830.       is confusing for Emacs users.
  1831.  
  1832. 1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
  1833. above) an deleted Control-x for entries (see above).
  1834.  
  1835. 1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
  1836. this could cause slaves to get "lost" so that they weren't mapped until the
  1837. master resized.
  1838.  
  1839. 1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
  1840. the mouse entered the widget;  this caused problems if tk_strictMotif was
  1841. set.
  1842.  
  1843. 1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
  1844. widgets to allow arbitrary screen distances when specifying -width and
  1845. -height for an image or bitmap (the manual pages already documented this
  1846. but the code didn't implement it).
  1847.  
  1848. 1/6/95 (new feature) Added very primitive support for input methods,
  1849. as suggested by Martin Forssen.  This should be enough for European
  1850. character sets (Compose key) but it isn't near enough for Asian
  1851. character sets.
  1852.  
  1853. 1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
  1854. where divide-by-zero errors could sometimes occur.
  1855.  
  1856. 1/8/95 (bug fix) New event handler didn't properly handle files for
  1857. which both TK_READABLE and TK_WRITABLE were specified.
  1858.  
  1859. 1/11/95 (bug fix) Fixed bug with text selections:  was returning count
  1860. too high for data, causing bogus garbage to appear when selection was
  1861. copied.
  1862.  
  1863. -------------------- Release 4.0b2, 1/12/95 -------------------------
  1864.  
  1865. 1/27/95 (feature removal) Removed %D substitution from binding scripts:
  1866. wasn't portable, shouldn't be used anyway.
  1867. *** POTENTIAL INCOMPATIBILITY ***
  1868.  
  1869. 1/27/95 (new features) Added -displayof options to the commands
  1870. "winfo atom", "winfo atomname", "winfo containing", "winfo interps",
  1871. and "winfo pathname".
  1872.  
  1873. 1/27/95 (new feature) Added "idle" option to "after" command to run
  1874. scripts as idle handlers.
  1875.  
  1876. 1/28/95 (new feature) Modified placer to make -x and -relx additive
  1877. if you specify both.  Same for -y and -rely, -width and -relwidth,
  1878. and -height and -relheight.  This makes it easy to make request such
  1879. as "make .a 2 pixels larger than .b".
  1880. *** POTENTIAL INCOMPATIBILITY ***
  1881.  
  1882. 1/28/95 (new feature) Improved auto-grab mechanism in canvases (which
  1883. prevents current item from changing while a button is down):  changed
  1884. to report Enter and Leave events for the current item while a button
  1885. is down.  However, as before, no Enter events are reported for other
  1886. items until the button goes up.
  1887.  
  1888. 1/28/95 (new feature) Bitmap images are now transparent if the -background
  1889. is specified as an empty string (-maskdata and -maskfile are ignored in
  1890. this case).  This is also the default.
  1891.  
  1892. 1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
  1893. such as SunAudioMute.  Modified tkBind.c so that it uses XStringToKeysym
  1894. in addition to its own hash table, so that all keysyms are now available.
  1895.  
  1896. 1/30/95 (feature change) Modified "clipboard append" so that it reclaims
  1897. the clipboard selection if it had been previously lost, rather than just
  1898. generating an error.  This handles certain race conditions more cleanly,
  1899. and also allows the use of programs like "xclipboard".
  1900.  
  1901. 1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
  1902. options to canvases.
  1903.  
  1904. 1/31/95 (bug fix) Geometry management was broken if a particular geometry
  1905. manager claimed a slave away from itself.
  1906.  
  1907. 1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
  1908. than requested was being selected in preference to one with just the right
  1909. number of bits.
  1910.  
  1911. 1/31/95 (bug fix) Texts weren't redisplaying the padding region properly
  1912. after changes in -padx or -pady.
  1913.  
  1914. 1/31/95 (new features) More text improvements:
  1915.     - Extended "insert" widget command for texts to allow multiple
  1916.       text-tagList pairs in the same command.
  1917.     - Added -nocase option to "search" widget command.
  1918.     - Added -overstrike option to tags.
  1919.     - Added tab stops, via -tabs option for widget and for tags.
  1920.  
  1921. 2/10/95 (bug fix) Modified all widgets to allow renaming of widget
  1922. commands.  Deleting a widget command will delete the widget.
  1923.  
  1924. 2/11/95 (new feature) Added -highlightbackground option to all widgets.
  1925.  
  1926. 2/14/95 (new feature) Added "insert" widget command for menus.
  1927.  
  1928. 2/15/95 (new feature) Modified text display code (for all widgets) to
  1929. display well-known control characters like newline and backspace as
  1930. \n or \b instead of \xa.
  1931.  
  1932. 2/15/95 (bug fix) Modified bitmap and photo image managers to delete
  1933. the image command when the image is deleted.  Also modified them to
  1934. allow renaming of the image command, and to delete the image if the
  1935. image command is deleted.
  1936.  
  1937. 2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
  1938. even if wrapping was enabled, if a line isn't entirely visible due to
  1939. a large character or embedded window.
  1940.  
  1941. 2/16/95 (feature change) Added "postcascade" widget command to menus,
  1942. changed "invoke" and "activate" not to post or unpost submenus.  Also
  1943. fixed bug in redisplay that tended to leave bits of garbage on menu
  1944. when submenu unposted.
  1945. *** POTENTIAL INCOMPATIBILITY ***
  1946.  
  1947. 2/16/95 (feature removal) Removed "snap back" behavior (slider
  1948. snaps back to old position if you move the mouse outside the widet
  1949. before releasing the button) from scrollbars and scales.
  1950.  
  1951. 2/16/95 (bug fix) The last line of a listbox wasn't being displayed if
  1952. it was only partially visible.
  1953.  
  1954. 2/16/95 (new features) Added support for "-resolution 0" (no rounding
  1955. of values) to scale widgets, plus smarter computation of how many digits
  1956. to display.
  1957.  
  1958. 2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
  1959. didn't properly set the anchor position.
  1960.  
  1961. 2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
  1962. add the toplevel implicitly to the end of the list if it wasn't already
  1963. on the list somewhere.  Without this, some window managers implicitly
  1964. put it at the front of the list, so that colormaps in internal windows
  1965. are never used.
  1966.  
  1967. 2/20/95 (bug fix) Changed to use separate command procedures for
  1968. button, checkbutton, label, and radiobutton commands.  This allows the
  1969. class commands to be renamed without breaking their behavior.
  1970.  
  1971. 2/20/95 (removed feature) The "bind" command no longer supports
  1972. "Keymap" events;  they never worked anyway.
  1973.  
  1974. 2/20/95 (bug fix) The text "search" widget command looped infinitely
  1975. when searching an empty text.
  1976.  
  1977. 2/20/95 (bug fix) Canvases weren't redrawing their borders after
  1978. configuration changes.
  1979.  
  1980. 2/20/95 (upgrade) Changed to use autoconf version 2.2.
  1981.  
  1982. 2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
  1983. when menus have no entries.
  1984.  
  1985. 2/21/95 (bug fix) Fixed bug in geometry management that caused windows
  1986. packed -in siblings to not always be mapped and unmapped properly
  1987. (particularly when the toplevel got unmapped and mapped).
  1988.  
  1989. 2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
  1990. caused embedded windows not to be unmapped when off-screen.
  1991.  
  1992. 2/23/95 (bug fix) "After cancel" dumped core when the script for an
  1993. after event cancelled itself.
  1994.  
  1995. 2/24/95 (bug fix) Text and entry widgets weren't properly ignoring
  1996. Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
  1997. for one of these resulted in the character also being inserted.
  1998.  
  1999. 2/24/95 (bug fix) Several widgets accidentally performed unsigned
  2000. division on negative numbers, thereby losing the sign bit.  This
  2001. mostly affected the display of images and bitmaps in buttons,
  2002. menubuttons, and messages.
  2003.  
  2004. 2/24/95 (feature reversal) Restored old behavior of %A so that it
  2005. returns non-printing characters as well as printing ones now.
  2006. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
  2007.  
  2008. 2/24/95 (bug fix) Duplicate "leave" events could occur for canvas
  2009. items under some conditions, due to recursive calls to PickCurrentItem.
  2010. Added code to detect and skip the nested calls.
  2011.  
  2012. 2/24/95 (bug fix) Fixed bug where an error could occur during the first
  2013. keystroke in an application if its binding invoked "break".
  2014.  
  2015. 2/25/95 (new feature) Modified syntax of "search" widget command for
  2016. texts.  The -nowrap switch and the "variable" final argument are no
  2017. longer supported.  Instead, there is a -count switch to replace
  2018. the final argument;  if the final argument is specified, it is now
  2019. a stopping index for the search.  The features of -nowrap can be
  2020. achieved now with the stopping index.
  2021. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
  2022.  
  2023. 2/27/95 (bug fix) Fixed problem that appears to prevent keyboard
  2024. input for working under IRIX:  tkBind.c was ignoring XmbLookupString
  2025. calls that returned a status of XLookupBoth.
  2026.  
  2027. 2/27/95 (new feature) Added Tk_GetItemTypes procedure to return
  2028. information about available canvas item types.
  2029.  
  2030. 2/27/95 (feature change) Changed Makefile to always use install-sh
  2031. for installations:  there's just too much variation among "install"
  2032. system programs, which makes installation flakey.
  2033.  
  2034. 2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
  2035. the app's main window was destroyed by a destroy handler on a
  2036. child.
  2037.  
  2038. 3/5/95 (feature change) Change separator character used in "bind +..."
  2039. bindings from semi-colon to newline (permits bindings that are
  2040. comments, for what that's worth).
  2041.  
  2042. 3/7/95 (bug fix/feature change) Overhauled focus code, both in C
  2043. and in Tcl:
  2044.     - Tk won't move the X focus in response to the "focus" command
  2045.       unless either the application already has the focus or the
  2046.       -force switch is specified.
  2047.     - Tk no longer sets the X focus to anything other than top-levels;
  2048.       it synthesizes events for FocusIn and FocusOut to children.
  2049.     - A window no longer has to be viewable when focussed to;  Tk will
  2050.       set the X focus later, when the window becomes viewable.
  2051.     - Added -takefocus option to all widgets.
  2052.     - Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option.
  2053.       These procedures no longer set the focus;  they just return the
  2054.       next window in focus order.
  2055.       *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
  2056.     - Eliminated tk_focusContinue.
  2057.       *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
  2058.  
  2059. 3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
  2060. in C:  Tk_StrictMotif library procedure.  Modified buttons, menubuttons,
  2061. menus to use it.  This fixes the problem with menus not supporting
  2062. tk_strictMotif properly in Tk4.0b1 and b2.
  2063.  
  2064. 3/16/95 (feature overhaul) Overhauled color management:
  2065.     - Changed Tk so it never denies a color request because a colormap
  2066.       filled up.  Instead, it allocates the closest available color.
  2067.     - Eliminated "color model" mechanism.  The "tk colormodel" command
  2068.       is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel.
  2069.       *** POTENTIAL INCOMPATIBILITY ***
  2070.     - Changed 3D border implementation to allocate colors for shadows
  2071.       lazily, so they're never allocated if they're never used.  Also
  2072.       added new feature whereby stippling is used for borders when
  2073.       the colormap has run out of entries.  Changed arguments to many
  2074.       of Tk_3D C procedures to take a Tk_Window as argument instead of
  2075.       a (Display *).  This is needed to do lazy color allocation.
  2076.       *** POTENTIAL INCOMPATIBILITY ***
  2077.     - Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue,
  2078.       and Tk_Get3DBorder.
  2079.       *** POTENTIAL INCOMPATIBILITY ***
  2080.  
  2081. 3/16/95 (feature change) Event bindings created from Tcl will now ignore
  2082. Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
  2083. This is done in anticipation of mega-widgets, so that the user of a
  2084. mega-widget can create Enter/Leave bindings on the mega-widget without
  2085. seeing spurious events as the mouse moves among the windows in the
  2086. mega-widget.
  2087. *** POTENTIAL INCOMPATIBILITY ***
  2088.  
  2089. 3/17/95 (feature change) Changed C interfaces throughout Tk to use ints
  2090. instead of unsigneds:  the unsigneds turn out to cause subtle problems
  2091. with arithmetic in some places, and using ints everywhere is just
  2092. simpler.
  2093. *** POTENTIAL INCOMPATIBILITY ***
  2094.  
  2095. 3/23/95 (bug fix) Selections longer than 4000 bytes were being
  2096. truncated to 4000 bytes.
  2097.  
  2098. -------------------- Release 4.0b3, 3/24/95 -------------------------
  2099.  
  2100. 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
  2101. "make install" will work even when "." isn't in the search path.
  2102.  
  2103. 3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
  2104. dumps in other applications during retrievals of large selections
  2105. (this is actually a bug in the other apps, but I've patched Tk to
  2106. keep it from getting triggered).
  2107.  
  2108. 3/25/95 (bug fix) Fixed bug where X window for "." wasn't being
  2109. deleted.
  2110.  
  2111. 3/27/95 (bug fix) Fixed many bugs associated with having more than
  2112. one application in a single process.
  2113.  
  2114. 3/28/95 (bug fix) The "search" widget command for texts didn't
  2115. return the correct index and count if there were embedded widgets
  2116. on the same line as the returned range but before the end of
  2117. the range.
  2118.  
  2119. 3/28/95 (bug fix) Changed pasting via button 2 in text and entries
  2120. so that it inserts at the pointer location, not the location of
  2121. the insertion cursor.
  2122.  
  2123. 3/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
  2124. that delete ancestors in the window hierarchy.  Also eliminated
  2125. extraneous calls to XDestroyWindow, which speeds up window deletion
  2126. by about 3x.
  2127.  
  2128. 3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
  2129. properly handle image deletions that occurred while the widget was
  2130. being deleted (caused core dumps).
  2131.  
  2132. 3/29/95 (bug fix) When retrieving long selections from text widgets,
  2133. parts of lines were getting duplicated in the selection information.
  2134.  
  2135. 4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
  2136. scales with 0 range.
  2137.  
  2138. 4/1/95 (bug fix) Fixed problem with -command option for scrollbars and
  2139. -takefocus option that caused commands to be evaluated in the wrong
  2140. context.
  2141.  
  2142. 4/1/95 (bug fix) Fixed problem with option database that caused it to
  2143. sometimes use the wrong option (wasn't flushing the database properly
  2144. after a change in a window's class).
  2145.  
  2146. 4/1/95 (bug fix) If a line in a text widget just barely fit in the window,
  2147. Tk was allocating a second screen line just for the newline character.
  2148.  
  2149. 4/1/95 (new feature) When backspacing in an entry widget, when you reach
  2150. the left edge of the widget, the insertion cursor gets recentered.
  2151.  
  2152. 4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
  2153. to fetch the current pointer position.
  2154.  
  2155. 4/6/95 (bug fix) If the last line of a text widget was only partially
  2156. visible, it was counted as visible for purposes of the scrollbar.  Now
  2157. it is treated as if it were off-screen for scrolling purposes.
  2158.  
  2159. 4/6/95 (new feature) Modified "bell" command to reset screen saver as well.
  2160.  
  2161. 4/6/95 (feature change) Modified menu scanning (where menus pull down
  2162. as you drag across their menubuttons) so it only works among menus
  2163. in the same toplevel;  it used to work for any menubuttons in the
  2164. application.
  2165.  
  2166. 4/6/95 (bug fix) Canvas text items weren't allowing real numbers in
  2167. "@x,y" notation for specifying indices.
  2168.  
  2169. 4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
  2170. was large.
  2171.  
  2172. 4/7/95 (bug fix) Changed "clipboard append" command to support -- option
  2173. and to always treat the last argument as data, even if it starts with
  2174. "-".
  2175.  
  2176. 4/17/95 (new feature) Added -wrap option to text tags.
  2177.  
  2178. 4/18/95 (bug fix) Listboxes and texts weren't updating their grid information
  2179. when -width or -height changed.
  2180.  
  2181. 4/18/95 (bug fix) "Down" didn't work right in text widgets if the last
  2182. line was only partially visible in the window.
  2183.  
  2184. 4/19/95 (bug fix) Listboxes didn't handle partially visible last lines
  2185. right:  couldn't scroll it into full visibility, for example.
  2186.  
  2187. 4/20/95 (bug fix) If a toplevel was positioned with a command like
  2188. "wm geometry . -0-0", the window didn't reposition itself to maintain
  2189. that geometry after a size change.
  2190.  
  2191. 4/21/95 (feature change) Changed order of binding tags so widget bindings
  2192. fire before class bindings.  New order is: widget, class, toplevel, all.
  2193. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
  2194.  
  2195. 4/23/95 (new feature) Added "winfo colormapfull" command.
  2196.  
  2197. 4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
  2198. treat Return the same as Space, unless tk_strictMotif is set.
  2199.  
  2200. 4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
  2201. binding tags and bindings of the original in the copy.
  2202.  
  2203. 4/25/95 (bug fix and feature change) Modified mechanism for choosing
  2204. "best" visual to fix a bug where depth wasn't really getting highest
  2205. priority in all situations.
  2206.  
  2207. 4/28/95 (bug fix) Failed text searches starting at "end" could result
  2208. in an infinite loop in Tk.
  2209.  
  2210. 4/30/95 (new feature) Added "wm resizable" command to enable and
  2211. disable interactive resizing.
  2212.  
  2213. 4/30/95 (new feature) Added "window names" widget command to texts:
  2214. returns a list of all embedded windows.
  2215.  
  2216. 5/2/95 (feature change) Changed text searches so that forward searches
  2217. start at the given index, rather than the character just after the
  2218. given index.
  2219. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
  2220.  
  2221. 5/4/95 (bug fix) Default bit gravity for windows was wrong (it was
  2222. ForgetGravity) causing unnecessary flashing when windows were resized.
  2223.  
  2224. 5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
  2225. sleep if there's nothing that will wake it up again (e.g. no file
  2226. or timer handlers).  Returns 0 immediately.
  2227.  
  2228. 5/5/95 (configuration change) Changed to use BSDgettimeofday instead
  2229. of gettimeofday on systems like IRIX where BSDgettimeofday is
  2230. available.  This avoids compilation problems due to the different
  2231. interface to gettimeofday provided by IRIX.
  2232.  
  2233. 5/5/95 (feature change) Changed binding mechanism so that all bindings
  2234. are created immediately at initialization time, rather than waiting
  2235. until the first FocusIn or Enter event for a class.
  2236.  
  2237. 5/6/95 (feature change) Changed default text for labels, buttons,
  2238. checkbuttons, radiobuttons, menubuttons, and messages from " " to
  2239. "".
  2240.  
  2241. 5/6/95 (bug fix) If the application was destroyed in the middle of
  2242. an "update" command, Tk would dump core.
  2243.  
  2244. 5/6/95 (bug fix) Changed manual entries to use the standard .TH
  2245. macro instead of a custom .HS macro;  the .HS macro confuses index
  2246. generators like makewhatis.
  2247.  
  2248. 5/6/95 (bug fix) Change "wm iconwindow" command to disable button
  2249. presses for the icon window.  This is needed so that the window
  2250. manager can get those events (X only allows button presses to go
  2251. to one client for a given window).
  2252.  
  2253. 5/9/95 (new feature) When specifying visuals, can now use "best"
  2254. with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.
  2255.  
  2256. 5/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
  2257. screen distances weren't allowed, only integers.
  2258.  
  2259. 5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.
  2260.  
  2261. 5/22/95 (color change) Changed the Tk color palette to a gray scheme.
  2262. Also added a library procedure tk_setPalette that makes it easy to
  2263. change colors on the fly, and a procedure tk_bisque that restores the
  2264. previous light brown scheme.
  2265.  
  2266. 5/28/95 (bug fix) Modified canvases so that the -width and -height
  2267. options refer to the space inside the borders, not the total widget
  2268. space.  Also changed "xview" and "yview" commands and scroll-increment
  2269. rounding to use the pixel just inside the borders, rather than (0,0).
  2270.  
  2271. 5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
  2272. didn't properly handle unsets of variables they were tracing, if the
  2273. variables were reference through upvars in procedures.
  2274.  
  2275. 6/4/95 (bug fix) The placer wasn't rounding window widths right when
  2276. both -relx and -relwidth were specified (or -rely and -relheight) so
  2277. that rounding errors accumulated.
  2278.  
  2279. 6/4/95 (feature improvement) Change parsing of text indices to handle
  2280. weird mark and tag names better (e.g. any string ending with ".first"
  2281. will now be parsed as a tag name, even if it contains embedded spaces,
  2282. etc.).
  2283.  
  2284. 6/4/95 (feature change) If a font defines glyphs for control characters,
  2285. they are now displayed, instead of translating the character to a
  2286. backslash sequence (however, tabs and newlines are still treated
  2287. specially;  glyphs are not displayed for these characters).
  2288.  
  2289. 6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
  2290. toplevels so that it now works under olwm and olvwm.  It didn't use to
  2291. work, and the problem is really in the window manager, but Tk now
  2292. patches around it.  However, only "total" raises and lowers work:
  2293. raising and lowering relative to a sibling still don't work under
  2294. olvwm and olwm.
  2295.  
  2296. 6/4/95 (feature change) Modified tab code in texts so that a tab always
  2297. occupies at least as much space as a space character.
  2298.  
  2299. 6/4/95 (bug fix) The "%t" substitution wasn't being made properly in
  2300. Enter and Leave event bindings.
  2301.  
  2302. 6/7/95 (new feature) Added support for GIF images.  Unfortunately it's
  2303. a bit fragile:  certain kinds of badly formed images can cause core
  2304. dumps;  I don't know enough about the GIF reader (taken from giftoppm)
  2305. to figure this out.
  2306.  
  2307. 6/7/95 (bug fix and feature change) Fixed PPM image reader to be more
  2308. flexible about header formats, and added support for PGM images.
  2309.  
  2310. 6/7/95 (feature change) Added -outlinestipple option to canvas arc
  2311. items, changed "-style arc" to use -outline as the color instead of
  2312. -fill (the old approach was pretty quirky).
  2313. *** POTENTIAL INCOMPATIBILITY ***
  2314.  
  2315. 6/8/95 (feature change) Modified interface to Tk_Main to pass in the
  2316. address of the application-specific initialization procedure.
  2317. Tcl_AppInit is no longer hardwired into Tk_Main.  This is needed
  2318. in order to make Tcl a shared library.
  2319.  
  2320. 6/8/95 (feature change) Modified Makefile so that the installed versions
  2321. of wish and libtk.a have version number in them (e.g. wish4.0 and
  2322. libtk4.0.a) and the library directory name also has an embedded version
  2323. number (e.g., /usr/local/lib/tk4.0).  This should make it easier for
  2324. Tk 4.0 to coexist with earlier versions.
  2325.  
  2326. 6/9/95 (new feature) Added -outline and -width options to canvas polygon
  2327. items.
  2328.  
  2329. 6/9/95 (feature changed) Renamed -decimate in photo widget to -subsample
  2330. (decimate wasn't technically correct).
  2331. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
  2332.  
  2333. -------------------- Release 4.0b4, 6/16/95 -------------------------
  2334.  
  2335. 6/19/95 (bug fix) Colors weren't being rounded correctly in canvas
  2336. Postscript generation: caused "white" to appear slightly gray when
  2337. the display of the canvas used only 8 bits per color.
  2338.  
  2339. 6/20/95 (bug fix) "bbox" widget command for texts didn't return
  2340. proper width for tabs.
  2341.  
  2342. 6/20/95 (bug fix) Scrollbars didn't always work right for texts:
  2343. couldn't scroll all the way to the bottom of the text in a single
  2344. drag of the slider.
  2345.  
  2346. 6/20/95 (new feature) Added "delta" widget command for scrollbars
  2347. (needed for above bug fix).
  2348.  
  2349. 6/23/95 (bug fix) Listboxes weren't properly redisplaying their
  2350. borders when the were configured to a smaller size.
  2351.  
  2352. 6/23/95 (new feature) Added "winfo server" command.
  2353.  
  2354. 6/23/95 (bug fix) If a menu was posted, couldn't switch to another
  2355. menu with an Alt- key.
  2356.  
  2357. 6/24/95 (new feature) Added "winfo pointerxy" command.
  2358.  
  2359. 6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
  2360. option names.
  2361.  
  2362. 6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
  2363. could get garbage in it if the main window's class was changed by
  2364. calling Tk_SetClass.
  2365.  
  2366. 6/25/95 (bug fix) Fixed two bugs in menus, one where errors in
  2367. variable traces weren't propagated correctly and one where "invoke"
  2368. was invoked at the wrong stack level, with the result that variable
  2369. traces didn't have access to the right variables.
  2370.  
  2371. 6/27/95 (bug fix) tk3d.c wasn't using all the right information
  2372. when deciding whether or not to stipple borders, so it stippled
  2373. borders even on 16-bit true-color displays.
  2374.  
  2375. 6/28/95 (bug fix) Page up and down operations in texts could cause
  2376. insertion cursor to drift to the right.  Changed tkTextScrollPages
  2377. to use upper-left corner of current character, rather than center
  2378. of character.
  2379.  
  2380. 6/28/95 (bug fix) Changed text widget so that you can't put the
  2381. insertion cursor after the last newline in the text.
  2382.  
  2383. 6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.
  2384.  
  2385. 6/28/95 (bug fix) Fixed problem that could cause core dumps in the
  2386. text widget when dealing with embedded windows (there were problems
  2387. if the act of redisplaying caused the window layout to change, which
  2388. can happen with embedded windows).
  2389.  
  2390. 6/28/95 (bug fix) Texts didn't handle indices with double negatives,
  2391. such as ".t mark set insert {insert + -20 chars}".
  2392.  
  2393. 6/28/95 (bug fix) Fixed problem where focus didn't always revert to
  2394. its prior window after a dialog box was dismissed.
  2395.  
  2396. 6/28/95 (bug fix) Fixed problem with "search" widget command returning
  2397. incorrect length on some backwards regexp searches.
  2398.  
  2399. 6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
  2400. a core dump.
  2401.  
  2402. 6/29/95 (new feature) Added -elementborderwidth option for scrollbars
  2403. so the -borderwidth can be set to 0 without flattening the arrows and
  2404. slider.
  2405.  
  2406. -------------------- Release 4.0, 7/1/95 -------------------------
  2407.  
  2408. 7/18/95 (bug fix) %t in event bindings didn't work properly for some
  2409. events (e.g. PropertyNotify).
  2410.  
  2411. 7/18/95 (bug fix) Changed "exec wish" lines in demo scripts to
  2412. "exec wish4.0" to avoid version conflicts.
  2413.  
  2414. 7/18/95 (bug fix) Fixed round-off errors in scrolling for texts,
  2415. canvases, listboxes, and entries.  The error could cause the view
  2416. to shift up in a command like "$w yview moveto [lindex [$w yview] 0]".
  2417.  
  2418. 7/19/95 (bug fix) Canvases weren't always redrawing borders correctly
  2419. when they became unobscured.  There were also some problems with
  2420. improper refresh after size changes.
  2421.  
  2422. 7/19/95 (bug fix) Fixed bug in text index processing that causes
  2423. tests textIndex-11.1 and textIndex12.1 to fail on some platforms.
  2424.  
  2425. 7/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during
  2426. "raise" and "lower" commands for toplevel windows under some window
  2427. managers (such as fvwm).
  2428.  
  2429. 7/20/95 (bug fix) Text searches were misbehaving when there were embedded
  2430. windows on the starting line of the search.  The most common symptom is
  2431. that Tk would fail to find a match at the starting position for the
  2432. search.
  2433.  
  2434. 7/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton
  2435. entry's -variable option referred to an array (or couldn't be read
  2436. by the menu C code for some other reason).
  2437.  
  2438. 7/22/95 (bug fix) Text widgets didn't update their scrollbars when
  2439. changes were made to information that was off-screen.
  2440.  
  2441. 7/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen
  2442. in the command ".l bbox end" if the listbox was empty.
  2443.  
  2444. 7/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't
  2445. move active element to remain on the screen.
  2446.  
  2447. 7/25/95 (bug fix) Patched around H-P compiler problem that results in
  2448. core-dumps in tkImgPhoto.c during image handling.
  2449.  
  2450. 7/25/95 (bug fix) Fixed bug in tkImgPhoto.c that caused core dumps
  2451. (during Tk self-tests and other image uses) on AIX and other machines
  2452. where "schar" in tkImgPhoto.c was being defined as "short" instead of
  2453. "char".
  2454.  
  2455. 7/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity
  2456. values other than 255.
  2457.  
  2458. 7/26/95 (bug fix) Canvases didn't redraw their borders when the relief
  2459. changed from raised to flat.
  2460.  
  2461. 7/27/95 (bug fix) Canvases didn't set the scrolling values correctly
  2462. when no scroll region was specified.
  2463.  
  2464. 7/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any
  2465. old grab that might have been in effect before a menu or dialog was
  2466. posted.
  2467.  
  2468. ----------------- Released patch 4.0p1, 7/29/95 ----------------------
  2469.  
  2470. 8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR
  2471. macro, so they didn't always work in non-U.S. locales. (JO)
  2472.  
  2473. 8/14/95 (new feature) Added -tearoffcommand option for menus.
  2474.  
  2475. 8/16/95 (bug fix) Canvases didn't generate proper Enter and Leave
  2476. events if the Leave handler for an item reconfigured the canvas in
  2477. a way that made the old current item the new current item again. (JO)
  2478.  
  2479. 8/21/95 (bug fix/feature change) When -takefocus was a script, Tk
  2480. was allowing window viewability to override it.  Changed so that
  2481. viewability is now ignored when -takefocus is a script. (JO)
  2482.  
  2483. 8/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and
  2484. tkUnixWm.c (JO).
  2485.  
  2486. 8/21/95 (bug fix) Text widgets didn't handle commands like
  2487. ".t search -backwards foo end 1.0" properly:  never found foo. (JO)
  2488.  
  2489. 8/23/95 (new feature) Added Makefile and configure.in support for
  2490. dynamic loading. (JO)
  2491.  
  2492. 8/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely
  2493. be renamed, due to a kludgy way that they shared a single command
  2494. procedure.  Split into separate procedures. (JO)
  2495.  
  2496. 8/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab
  2497. window not visible" errors for popup menus (and perhaps elsewhere?). (JO)
  2498.  
  2499. 8/25/95 (bug fix / new feature) The "gray25" bitmap was really only
  2500. 12.5% on, not 25%.  Added new "gray12" bitmap that is the same as the
  2501. old "gray25".  "Gray25" is still supported for compatibility, but its
  2502. use is deprecated. (JO)
  2503.  
  2504. 8/25/95 (bug fix) Scrollbar bindings didn't properly handle case where
  2505. B2 is clicked while B1 is already down. (JO)
  2506.  
  2507. 8/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif
  2508. was set, but not -activeforeground.  Changed to ignore both. (JO)
  2509.  
  2510. 8/26/95 (bug fix) Scales and scrollbars didn't properly handle a
  2511. -repeatdelay value of 0 (they shouldn't auto-repeat in this case). (JO)
  2512.  
  2513. 8/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when
  2514. clicking on a disabled option menu. (JO)
  2515.  
  2516. 8/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead
  2517. of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO)
  2518.  
  2519. 8/28/95 (bug fix) Fixed bug in photo images that caused garbling of
  2520. image data in the "put" and "copy" commands if the source data had
  2521. only one scan line but had a width less than the width of the target
  2522. image. (JO)
  2523.  
  2524. 8/29/95 (bug fix) Tk used to refuse to post menus if they had no
  2525. entries.  This made it impossible for a menu to fill itself the first
  2526. time it is posted.  Changed to allow menus with no entries to be
  2527. posted. (JO)
  2528.  
  2529. 8/30/95 (bug fix) If there was extra space at the bottom of a menu,
  2530. it wasn't being redisplayed properly.
  2531.  
  2532. 8/30/95 (new feature) Added -transient option to menus.
  2533.  
  2534. 8/30/95 (new features) Added proper button 2 support to both scrollbars
  2535. and scales (it sets the slider position from the mouse position). (JO)
  2536.  
  2537. 8/30/95 (bug fix) Fixed potential core dump that could occur in
  2538. photo images (ReadPPMFileHeader could overflow buffer under some bad
  2539. inputs, such as certain GIF images). (JO)
  2540.  
  2541. 8/30/95 (bug fix) Errors of the form `syntax error in expression "!"'
  2542. could occasionally happen in tkScaleDrag. (JO)
  2543.  
  2544. 8/31/95 (new feature) Changed man page installation (with "mkLinks"
  2545. script) to create additional links for manual pages corresponding to
  2546. each of the procedure and command names described in the pages. (JO)
  2547.  
  2548. 9/1/95 (new feature) Added "after info" command.  Also added checks
  2549. so that one interpreter can't cancel another's "after" events. (JO)
  2550.  
  2551. 9/8/95 (bug fix) Fixed bug that could cause memory corruption and core
  2552. dumps if a "fileevent" handler was deleted while the handler was
  2553. active. (JO)
  2554.  
  2555. 9/11/95 Reorganized Tk sources for Windows and Mac ports.  All sources
  2556. are now in subdirectories:  "generic" contains sources that work on all
  2557. platforms, "windows", "mac", and "unix" directories contain platform-
  2558. specific sources.  (SS)
  2559.  
  2560. 9/11/95 (new feature) Added new  "notifier" mechanism to allow multiple
  2561. implementations of the mechanisms for finding out about events.  This
  2562. change was necessary to support Mac and PC platforms, but it may also
  2563. allow other goodies such as combining Xt and Tk widgets in a single
  2564. application.  See the new manual entry Notifier.3 for details. (SS)
  2565.  
  2566. 9/11/95 (feature change) Changed interface to Tk_RestrictProc so that
  2567. (a) it takes a clientData argument instead of display and arg, and
  2568. (b) it returns a value that can ask for the event to be discarded as well
  2569. as deferred or processed. (SS)
  2570. *** POTENTIAL INCOMPATIBILITY ***
  2571.  
  2572. 9/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent
  2573. to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS)
  2574.  
  2575. 9/11/95 (feature change) Can't export variables anymore because this doesn't
  2576. work under Windows DLLs.  Eliminated tk_NumMainWindows variable and replaced
  2577. with procedure Tk_GetNumMainWindows. (SS)
  2578. *** POTENTIAL INCOMPATIBILITY ***
  2579.  
  2580. 9/11/95 (new feature) Added procedure Tk_PreserveColormap to increment
  2581. the reference count on colormaps.  Used in photo widgets. (SS)
  2582.  
  2583. ----------------- Released patch 4.0p2, 9/15/95 ----------------------
  2584.  
  2585. ----------------- Released 4.1a1, 9/15/95 ----------------------
  2586.  
  2587. 9/22/95 (renamed files) Changed the names of the bitmap images in the
  2588. $tk_library/demos/images directory to use the .bmap file extension.  (RJ)
  2589.  
  2590. 9/22/95 (bug fix) Fixed bug where text widgets could occasionally
  2591. display the insertion cursor both at the end of one line and the
  2592. beginning of the next. (JO)
  2593.  
  2594. 9/25/95 (bug fix) Fixed bug that could cause core dumps when an
  2595. application uses multiple screens and a binding destroys the main
  2596. window (bind code was using MainInfo structure after it had been
  2597. freed). (JO)
  2598.  
  2599. 9/25/95 (bug fix) Text widgets sometimes scrolled backwards on
  2600. occasion if you dragged down past the bottom of the scrollbar. (JO)
  2601.  
  2602. 9/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted
  2603. from a torn-off menu could be left posted if mouse was pulled off the
  2604. end of the cascade and released. (JO)
  2605.  
  2606. 9/25/95 (new feature) Added "--" switch to wish, so that you can
  2607. pass arguments like -n through to a script without having wish
  2608. interpret them. (JO)
  2609.  
  2610. 9/25/95 (bug fix) Fixed core dump that could occur for radiobuttons
  2611. and selectbuttons if -selectcolor was an empty string. (JO)
  2612.  
  2613. 9/26/95 (bug fix) Entries didn't used to notice if a trace procedure
  2614. on the -textvariable overrode a new value set by the entry.  This
  2615. could cause the variable to get out of sync with the contents of the
  2616. entry. (JO)
  2617.  
  2618. 9/26/95 (new feature) Added -sliderrelief option to scales, changed
  2619. default bindings to change the slider's relief to sunken while it's
  2620. being dragged with the mouse. (JO)
  2621.  
  2622. 9/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly;
  2623. could result in X Protocol error for QueryColors when colormaps run
  2624. out of colors. (JO)
  2625.  
  2626. 9/26/95 (bug fix) Wish couldn't handle script files with spaces in
  2627. their names. (JO)
  2628.  
  2629. 9/27/95 (cosmetic clean-up) Removed extraneous spaces to make error
  2630. messages consistent: ":  should be" is now ": should be". (JO)
  2631.  
  2632. 9/27/95 (feature change)  Modified tk_dialog so that it uses the
  2633. option database for the -wraplength option on the message.  This
  2634. allows the option to be overridden by the caller. (JO)
  2635.  
  2636. 9/28/95 (bug fix) Wish incorrectly parsed the command line under
  2637. Windows, causing backslashes to be substituted. (SS)
  2638.  
  2639. 9/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS)
  2640.  
  2641. 9/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances
  2642. when it was possible to find more work to do.  For example, if a
  2643. signal interrupted select(), but no event handlers were triggered, it
  2644. would return 0 even though it could still detect events by reentering
  2645. select().  (SS)
  2646.  
  2647. 9/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS)
  2648.  
  2649. 10/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of
  2650. Tk_IdlePending. (SS)
  2651.  
  2652. 10/1/95 (bug fix) Turned motion event collapsing into an idle handler
  2653. so it will be easier to move the event loop into Tcl. (SS)
  2654.  
  2655. 10/1/95 (bug fix) Fixed several problems with negative coordinates
  2656. in canvases.  One example:  dragging a canvas rectangle with a wide
  2657. border and fractional coordinates could leave junk on the screen
  2658. if the rectangle was in negative coordinate space. (JO)
  2659.  
  2660. 10/2/95 (bug fix) Tk was improperly handling Enter/Leave events
  2661. during a button grab. (SS)
  2662.  
  2663. 10/2/95 (new feature) Added support for the Macintosh do script
  2664. ('dosc') event.  Available only on the Macintosh.  (RJ)
  2665.  
  2666. 10/4/95 (new feature) Added support for compiling with VC++.
  2667. Resulting binaries work under Win32s through NT.
  2668.  
  2669. ----------------- Released 4.1a2, 10/6/95 ----------------------
  2670.  
  2671. 10/10/95 (new feature) Macintosh Tk now supports the complete set
  2672. of X cursors that Unix Tk supports. (RJ)
  2673.  
  2674. 10/11/95 (bug fix) Tk now supports all of the X11 cursors under
  2675. Windows.  (SS)
  2676.  
  2677. 10/11/95 (bug fix) The "wm resizable" command was missing from the
  2678. Windows version of Tk. (SS)
  2679.  
  2680. 10/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel
  2681. windows that children of any frame other than another toplevel. (RJ)
  2682.  
  2683. 10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
  2684. the tk.def file from Borland object files. (SS)
  2685.  
  2686. 10/16/95 (bug fix) Fixed clipping and update problems relating to
  2687. the raising and lowering of overlapping windows on Mac. (RJ)
  2688.  
  2689. 10/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse),
  2690. was focussing on windows even in situations where keyboard traversal would
  2691. skip the window.  Changed to use the tkFocusOK procedure so that the
  2692. criteria for focussing are the same in both modes. (JO)
  2693.  
  2694. 11/2/95 (bug fix) Changed listbox bindings to ignore double-clicks.
  2695. This avoids errors that used to occur if a user defined a binding
  2696. for double-click that deleted the listbox. (JO)
  2697.  
  2698. 11/3/95 (feature change) Moved most of the Tk event loop to Tcl.  Many
  2699. Tk_ names have become Tcl names now:
  2700.  
  2701. TK_READABLE =>        TCL_READABLE
  2702. TK_WRITABLE =>        TCL_WRITABLE
  2703. TK_EXCEPTION =>        TCL_EXCEPTION
  2704. TK_DONT_WAIT =>        TCL_DONT_WAIT
  2705. TK_WINDOW_EVENTS =>    TCL_WINDOW_EVENTS
  2706. TK_FILE_EVENTS =>    TCL_FILE_EVENTS
  2707. TK_TIMER_EVENTS =>    TCL_TIMER_EVENTS
  2708. TK_IDLE_EVENTS =>    TCL_IDLE_EVENTS
  2709. TK_ALL_EVENTS =>    TCL_ALL_EVENTS
  2710. Tk_IdleProc =>        Tcl_IdleProc
  2711. Tk_FileProc =>        Tcl_FileProc
  2712. Tk_TimerProc =>        Tcl_TimerProc
  2713. Tk_TimerToken =>    Tcl_TimerToken
  2714. Tk_BackgroundError =>    Tcl_BackgroundError
  2715. Tk_CancelIdleCall =>    Tcl_CancelIdleCall
  2716. Tk_CreateFileHandler =>    Tcl_CreateFileHandler
  2717. Tk_CreateTimerHandler =>Tcl_CreateTimerHandler
  2718. Tk_DeleteFileHandler =>    Tcl_DeleteFileHandler
  2719. Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler
  2720. Tk_DoOneEvent =>    Tcl_DoOneEvent
  2721. Tk_DoWhenIdle =>    Tcl_DoWhenIdle
  2722. Tk_Sleep =>        Tcl_Sleep
  2723. tkerror =>        bgerror
  2724.  
  2725. Other than the name changes, the functions are the same.  In addition,
  2726. there are #defines in tk.h so that the old Tk names will still work.
  2727. tkerror and bgerror are specially hacked as synonyms, so it should be
  2728. safe to use either one.  You should switch to the new Tcl names ASAP,
  2729. though, since the old Tk names will eventually be desupported. (JO)
  2730.  
  2731. 11/7/95 (features removed) As part of moving the event loop to Tcl,
  2732. the following procedures were deleted:
  2733.     - Tk_EventInit (the presence of the event loop in Tcl should
  2734.       make this unneccessary).
  2735.     - Tk_CreatFileHandler2 (you can get the same effect by using event
  2736.       sources in Tcl, but you have to modify your code to use the new
  2737.       Tcl APIs).
  2738.     - All of the stuff in the manual entries Notifer.3 and QueueEvent.3;
  2739.       this has changed because the notifier got reworked when it was
  2740.       moved to Tcl.
  2741. *** POTENTIAL INCOMPATIBILITY ***
  2742.  
  2743. 11/7/95 (feature change)  Changed to use exit handler to cleanup windows
  2744. in Tk, so Tk no longer needs to have a private copy of the "exit" command.
  2745. (JO)
  2746.  
  2747. 11/7/95 (bug fix) If wish was invoked with a command-line geometry and
  2748. a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of
  2749. the windows created by the script used the -setgrid option, then the
  2750. width and height from the command line were lost. (JO)
  2751.  
  2752. 11/8/95 (bug fix) The "see" command didn't work quite right for texts:
  2753. if the window was small and you try to "see" a line just offscreen,
  2754. Tk centered the line (actually, mis-centered it) when it should have
  2755. aligned it at the top or bottom. (JO)
  2756.  
  2757. 11/9/95 (bug fix) The "send" command crashed if you tried to send to
  2758. a different display with "-displayof". (JO)
  2759.  
  2760. 11/9/95 (bug fix) The Symbol font didn't print right in Postscript
  2761. output, because of changes made to re-encode fonts to get proper
  2762. ISO Latin1 behavior.  Changed the code not to re-encode the Symbol
  2763. font. (JO)
  2764.  
  2765. 11/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that
  2766. configure can be run from a clean directory separate from the Tcl source
  2767. tree, and compilations can be performed there. (JO)
  2768.  
  2769. 11/17/95 (bug fix) If a window was gridded, Tk still computed the
  2770. default maximum dimensions in pixel units, which resulted in windows
  2771. that could grow much larger than the screen. (JO)
  2772.  
  2773. 11/17/95 (bug fix) If a menus entries were all disabled, posting
  2774. the menu and typing Up or Down caused an infinite loop, locking
  2775. up the screen (JO).
  2776.  
  2777. 11/19/95 (bug fix) The focus wasn't being restored properly after a
  2778. menu selection in a cascaded menu. (JO)
  2779.  
  2780. 11/19/95 (bug fix) Menubutton's didn't stipple display their images
  2781. differently when disabled.  Change to have the same behavior as buttons:
  2782. the image is stippled over in the background color when the menubutton
  2783. is disabled. (JO)
  2784.  
  2785. 11/21/95 (bug fix) Changes in display attributes such as font could
  2786. cause core dumps in the text widget under some circumstances involving
  2787. line wrapping. (JO)
  2788.  
  2789. 11/22/95 (bug fix/new feature)  Changed both the placer and the packer
  2790. to ensure that slaves are unmapped whenever the master is unmapped.
  2791. This saves time that slaves might otherwise spend trying to redisplay
  2792. themselves when they're unmapped. (JO)
  2793.  
  2794. 11/22/95 (bug fix) Space and return keys didn't work for menus if
  2795. they were posted via Alt-x keystrokes. (JO)
  2796.  
  2797. 11/24/95 (bug fix) tk_dialog procedure had binding for <Return> that
  2798. always activated default binding, even if input focus was in some
  2799. other binding.  Removed this feature, since existing focus support
  2800. will already "do the right thing".  (JO)
  2801.  
  2802. 11/24/95 (bug fix) Both canvases and texts could dump core if a binding
  2803. (such as ButtonRelease on an internal item) deleted the widget. (JO)
  2804.  
  2805. 11/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh,
  2806. which is more complete and uses slightly different names.  Also
  2807. arranged for tkConfig.sh to be installed in the platform-specific
  2808. library directory. (JO)
  2809.  
  2810. 11/24/95 (bug fix) It was possible for a slave to be placed or packed
  2811. -in itself, with unpleasant consequences.  It is now an error for the
  2812. slave to be its own master for geometry management. (JO)
  2813.  
  2814. 11/25/95 (bug fix) The -command option of scales was sometimes being
  2815. invoked spuriously (e.g. when the mouse moved in the scale without a
  2816. button down).  This was because the scale wasn't rounding properly
  2817. when setting the scale value from its associated variable. (JO)
  2818.  
  2819. ----------------- Released patch 4.0p3, 11/28/95 ----------------------
  2820.  
  2821. 12/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and
  2822. Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc.  Added #defines
  2823. to tk.h so that the old names still work.  (JO)
  2824.  
  2825. 12/23/95 (bug fix) If a single process had > 1 Tk application, Tk
  2826. didn't guarantee that the application names were unique, which could
  2827. cause all sorts of confusion with "send".  (JO)
  2828.  
  2829. 12/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved
  2830. all of its functionality to Tk_Init.  All that you need to do now
  2831. to get Tk in an application is to call Tk_Init.  Improved Tk_Init
  2832. so that -colormap and -visual command-line arguments are now passed
  2833. through to TkCreateFrame.  Tk_Main is much simpler now, since a lot
  2834. of its functionality has moved to Tk_Init. (JO)
  2835. *** POTENTIAL INCOMPATIBILITY ***
  2836.  
  2837. 12/23/95 (new feature) Added support for Tcl_StaticPackage so
  2838. that Tk can now be loaded into slave interpreters with the "load"
  2839. command to create new applications. (JO)
  2840.  
  2841. 12/23/95 (new features) Added support for -colormap and -visual command-
  2842. line options for wish. (JO)
  2843.  
  2844. 1/4/95 (bug fix) Fixed keyboard code to properly handle alt-key
  2845. sequences for international keyboards and menu-accelerators. (SS)
  2846.  
  2847. 1/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses
  2848. to tkPriv(relief) during control-clicks. (JO)
  2849.  
  2850. 1/9/96 (new feature) added the "grid" command to provide a table based
  2851. geometry manager. (SU)
  2852.  
  2853. 1/12/96 (performance optimization) Changed the way tag information is kept
  2854. in the text's Btree so the cost of adding and removing tag ranges is no longer
  2855. proportional to the number of unique tags in the text.  In the old system
  2856. the cost of adding N unique tags was O(N-squared).  The new implementation is
  2857. optimized for tags that only cover a small amount of text, measuring from
  2858. their earliest tag range to the end of their last range.  In the best case the
  2859. cost of adding a tag range is unrelated to the number of unique tags, so the
  2860. cost of adding N tags is only O(N).  In the worst case, where all tags
  2861. cover all the text, the cost is still O(N-squared) to add N such tags.
  2862. Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared),
  2863. but it is now a factor of 2 faster than the old system. (BW)
  2864.  
  2865. 1/12/96 (new feature) added the text "dump" operation that returns information
  2866. about all elements in a text widget: text, tags, marks, and windows. (BW)
  2867.  
  2868. 1/12/96 (new feature) added the text "mark next" and "mark previous" operations
  2869. to search forward and backwards for the next (previous) mark in the text. (BW)
  2870.  
  2871. 1/12/96 (new feature) added the text "tag prevrange" operation to search
  2872. backwards for the current or previous range of a tag. (BW)
  2873.  
  2874. 1/16/96 (new feature) Added support for relative widget placement on
  2875. the "grid" command. (SU)
  2876.  
  2877. 1/17/96 (new feature) Modified the Makefile/configure setup to support
  2878. compiling Tk as a shared library.  Use the --enable-shared option to
  2879. the "configure" script. (JO)
  2880.  
  2881. ----------------- Released 4.1b1, 1/26/96 -----------------------
  2882.  
  2883. 2/2/96 (bug fix) Frames were getting a default size of 200x200, whereas
  2884. there should be no default. (JO)
  2885.  
  2886. 2/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed
  2887. the arguments it understood from those on the command line. (JO)
  2888.  
  2889. 2/6/96 (bug fix) Fixed off by one error in argument parsing code under
  2890. Windows. (SS)
  2891.  
  2892. 2/6/96 (bug fix) "wm transient" now works under Windows.  The resulting
  2893. toplevel is created with a modal dialog box frame and will not appear
  2894. in the taskbar under Windows '95. (SS)
  2895.  
  2896. 2/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk
  2897. libraries so that shared libraries are more likely to be found correctly
  2898. on more platforms. (JO)
  2899.  
  2900. 2/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because
  2901. it can't be exported safely across DLL boundaries.  Instead, exported
  2902. Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for
  2903. use by canvas type managers in creating their own custom options. (JO)
  2904. *** POTENTIAL INCOMPATIBILITY ***
  2905.  
  2906. 2/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window
  2907. crashed wish.  (SS)
  2908.  
  2909. 2/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS)
  2910.  
  2911. 2/14/96 (bug fix) Cursors were not being updated until an enter event.
  2912. In cases where the cursor left the toplevel and reentered before Tk
  2913. noticed, the cursor would get "stuck" until the next enter event.
  2914. Similarly, if the cursor attribute of a window was updated while the
  2915. mouse was in the window, the cursor would not change until the next
  2916. time the mouse entered the window. (SS)
  2917.  
  2918. 2/15/96 (bug fix) If a top-level was resizable in one direction
  2919. (e.g. "wm resizable . 0 1"), once the user resized it any changes
  2920. in the internally requested size (by the widgets) were ignored,
  2921. even for the non-resizable dimension.  Fixed to handle the two
  2922. dimensions totally independently, so the widget's requests are
  2923. honored as long as that dimension hasn't been set by the user. (JO)
  2924.  
  2925. 2/17/96 (bug fix) If a text widget had very long lines (e.g. more than
  2926. 32K pixels), integer overflow could occur, resulting in parts of the
  2927. line not being visible. (JO)
  2928.  
  2929. 2/20/96 (feature change) Changed the -minsize option of grid to take
  2930. screen units instead of pixels. (SU)
  2931.  
  2932. 2/20/96 (bug fix) grid row and column weights are compared against
  2933. MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors
  2934. during weight normalization. (SU)
  2935.  
  2936. 2/20/96 (bug fix) Menu commands were not being invoked sometimes.
  2937. There was a race condition that caused events to be processed while a
  2938. menu was being unposted. (SS)
  2939.  
  2940. ----------------- Released 4.1b2, 2/23/96 -----------------------
  2941.  
  2942. 2/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus
  2943. caused menus to be posted in the parent toplevel. (JO)
  2944.  
  2945. 2/23/96 (bug fix) Canvases weren't always updating their scrollbars
  2946. when they should. (JO)
  2947.  
  2948. 2/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL
  2949. handler generated an error. (JO)
  2950.  
  2951. 2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
  2952. this caused problems on some platforms (like Linux?). (JO)
  2953.  
  2954. 2/24/96 (feature change) Changed text and entry widgets so that they
  2955. set the insertion cursor before inserting during a button-2 click.
  2956. Also made optional bindings check for tk_strictMotif at the time of
  2957. the event, rather than at the time the bindings are created. (JO)
  2958.  
  2959. 2/24/96 (bug fix) Tk tended to crash with an X error when unsetting
  2960. an icon window (e.g. "wm iconwindow . {}"). (JO)
  2961.  
  2962. 2/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS
  2963. property when they were deleted.  (JO)
  2964.  
  2965. 3/1/96 (new feature) Added new "bbox" widget command for entries.
  2966. Also modified mouse bindings for entries and texts so that the
  2967. mouse position rounds to the nearest inter-character gap, rather
  2968. than the left edge of the character under the mouse.  This provides
  2969. more natural selection behavior. (JO)
  2970.  
  2971. 3/1/96 (bug fix) Fixed core dump that could occur in image code if an
  2972. image was deleted while in use in a widet, then re-used in another
  2973. widget while "deleted". (JO)
  2974.  
  2975. 3/1/96 (bug fix) Calling wish with a single argument caused a crash
  2976. under Windows due to an off-by-one error in the argument parsing code. (SS)
  2977.  
  2978. 3/1/96 (bug fix) Palette management was broken and resulted in
  2979. incorrect palette realization and refresh behavior.  Also, images were
  2980. being drawn incorrectly if they were attached to widgets that had a
  2981. private colormap. (SS)
  2982.  
  2983. 3/2/96 (bug fix) It was possible to press the mouse button over an
  2984. option menu, drag to a pulldown menu, and have the pulldown menu
  2985. popup in place of the option menu.  Fixed this so that option menus
  2986. are isolated from each other and from pulldowns. (JO)
  2987.  
  2988. 3/2/96 (bug fix) Fixed yet another bug that caused long delays when
  2989. raising toplevel windows. (JO)
  2990.  
  2991. 3/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles
  2992. and ovals didn't always redisplay right (could leave trailing
  2993. garbage on screen when moved). (JO)
  2994.  
  2995. 3/2/96 (bug fix) Entry widgets reset their insertion cursor, selection,
  2996. and view whenever the text variable changed, plus whenever a "configure"
  2997. widget command was invoked and there was a text variable for the
  2998. widget.  Fixed to preserve this information as much as possible. (JO)
  2999.  
  3000. 3/5/96 (new feature) Added version suffix to shared library names so that
  3001. Tk will compile under NetBSD and FreeBSD (I hope).  (JO)
  3002.  
  3003. 3/6/96 (bug fix) Changed the way certain configure & motion events are
  3004. reported.  This fixes several bugs in menus & "winfo rootx". (RJ)
  3005.  
  3006. 3/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a
  3007. selection.  If you had dragged left, then tried to drag back right, the
  3008. left edge of the selection wasn't being updated because the tag remove
  3009. wasn't doing anything. (BW)
  3010.  
  3011. 3/7/96 (bug fix) Fixed the boundary conditions of tag prevrange.  The second
  3012. index argument wasn't effecting in stopping the search if it fell within
  3013. a range.  The second index has to come at or before the start of a range
  3014. for the range to be found by tag prevrange. (BW)
  3015.  
  3016. 3/7/96 (bug fix) "puts" to stdout or stderr when running from a script
  3017. caused wish41.exe to exit silently.  Now the output is silently
  3018. discarded without generating an error.  (SS)
  3019.  
  3020. 3/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input
  3021. as end of input, if the input came from stdin. This would cause it to
  3022. complain about missing closing braces etc. (JL)
  3023.  
  3024. ----------------- Released 4.1b3, 3/8/96 -----------------------
  3025.  
  3026. 3/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text
  3027. widgets of the form 'can't use non-numeric string as operand of "-"'. (JO)
  3028.  
  3029. 3/12/96 (feature improvement) Modified startup script to look in several
  3030. different places for the Tcl library directory.  This should allow tk
  3031. to find the libraries under all but the weirdest conditions, even without
  3032. the TK_LIBRARY environment variable being set. (JO)
  3033.  
  3034. 3/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO)
  3035.  
  3036. 3/14/96 (bug fix) Button-2 wasn't claiming the focus during paste
  3037. operations. (JO)
  3038.  
  3039. 3/14/96 (bug fix) "tkwait visibility" use to hang forever if its window
  3040. was deleted.  Now it detects this condition and returns an error. (JO)
  3041.  
  3042. 3/16/96 (bug fix) Changed configuration stuff to get dynamic loading and
  3043. shared libraries working under AIX. (JO)
  3044.  
  3045. 3/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter
  3046. was deleted in the middle of executin bindings. (JO)
  3047.  
  3048. 3/18/96 (new feature) Added support for Activate/Deactivate events.
  3049. Currently, these new X events will generated only on the Macintosh. (RJ/CS)
  3050.  
  3051. 3/21/96 (bug fix) The "tag prevrange" command would fail to return the current
  3052. range if it began at 1.0 and the starting point of the search was within
  3053. the range. (BW)
  3054.  
  3055. 3/21/96 (configuration improvement) Changed configure script so it
  3056. doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under
  3057. SunOS 4.1, where they don't work anyway.  (JO)
  3058.  
  3059. 3/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it
  3060. should be safe to delete an interpreter with a Tk application inside it,
  3061. without first deleting the Tk application. (JL)
  3062.  
  3063. 3/26/96 (bug fix) Tk now returns results from a "send" to an interpreter
  3064. in which the Tk application is destroyed, if the interpreter continues
  3065. computing after the Tk application is destroyed. Previously any results
  3066. computed after '.' was destroyed in the target interpreter were discarded
  3067. by the "send". (JL)
  3068.  
  3069. 3/26/96 (new feature) Tk now provides a static Tktest package which is
  3070. present only in test versions of Tk; this allows the testing commands to
  3071. be loaded into new interpreters besides the main one. (JL)
  3072.  
  3073. 3/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the
  3074. dialog a transient for its parent.  The old behavior meant that the
  3075. dialog did not get posted if the parent was iconified. (JO)
  3076.  
  3077. 4/5/96 (bug fix) Tk would occasionally crash when destroying toplevels
  3078. under Windows. (SS)
  3079.  
  3080. 4/5/96 (bug fix) Fonts were not being properly deallocated, causing
  3081. GDI resources to be consumed and never released under Windows. (SS)
  3082.  
  3083. 4/11/96 (bug fix) Toplevel windows with no specified geometry were
  3084. always appearing in the upper left corner of the screen under
  3085. Windows. (SS)
  3086.  
  3087. 4/11/96 (bug fix) "wm minsize" did not properly report the minimum
  3088. size imposed by the Windows window manager. (SS)
  3089.  
  3090. 4/13/96 (bug fix) Text widgets could dump core in some cases where
  3091. text was inserted on the top visible line. (JO)
  3092.  
  3093. 4/16/96 (bug fix) Changed menu code to ignore errors that occur when
  3094. restoring a grab:  the old grab window might not be visible anymore. (JO)
  3095.  
  3096. ----------------- Released 4.1, 4/21/96 -----------------------
  3097.  
  3098. 5/1/96 (bug fix) "option readfile" did not handle files with CRLF
  3099. line termination. (SS)
  3100.  
  3101. 5/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries",
  3102. not "make install-libraries". (JO)
  3103.  
  3104. 5/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to
  3105. avoid potential core dumps. (JO)
  3106.  
  3107. 5/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a
  3108. transient window again.  This is needed to make sure that the dialog
  3109. box doesn't get obscured.  Also changed it to return -1 if the dialog
  3110. window is deleted before the user presses a button. (JO)
  3111.  
  3112. 5/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget
  3113. with -setgrid 1 was deleted by removing its command. (JO)
  3114.  
  3115. 5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
  3116. initialized variables left over from previous invocation of Tk_Init on
  3117. another interpreter. (JL)
  3118.  
  3119. 5/16/96 (new feature) Implemented application embedding on Windows
  3120. platforms (only Tk inside another application, not the other way yet). (JL)
  3121.  
  3122. 5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
  3123. interpreter. (JL)
  3124.  
  3125. 5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
  3126. initialized variables left over from previous invocation of Tk_Init on
  3127. another interpreter. (JL)
  3128.  
  3129. 5/16/96 (new feature) Implemented application embedding on Windows
  3130. platforms (only Tk inside another application, not the other way yet). (JL)
  3131.  
  3132. 5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
  3133. interpreter. (JL)
  3134.  
  3135. 5/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on
  3136. button 1. (JO)
  3137.  
  3138. 6/12/96 (bug fix) Focus was automatically placed on new toplevels.
  3139. This caused the titlebar to flash during menubar traversal. (SS)
  3140.  
  3141. 6/12/96 (bug fix) Iconification of a window with a specified geometry
  3142. by using the minimize button would leave the window in an inconsistent
  3143. state.  When the window was deiconified using "wm deiconify", the
  3144. window would continue to display as an icon with the deiconified
  3145. geometry. (SS)
  3146.  
  3147. 6/12/96 (bug fix) Fixed a resource leak where the text widget was not
  3148. freeing all of the TkRegions it created.  This fix affects all
  3149. platforms, but is particularly important for Win32s. (SS)
  3150.  
  3151. 6/21/96 (configuration change) Added --enable-gcc switch to configure
  3152. script to make Tk just like Tcl.  Now Tk will not use gcc unless you
  3153. request it explicitly. (JO)
  3154.  
  3155. 7/18/96 (bug fix) Changed "configure" script to add an extra -R switch
  3156. (or whatever is appropriate to the platform) if the X library is in a
  3157. nonstandard place.  This guarantees that the shared library can be
  3158. found at runtime without having to set the LD_LIBRARY_PATH variable. (JO)
  3159.  
  3160. 7/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a
  3161. GIF file contained multiple images. (JO)
  3162.  
  3163. 7/20/96 (bug fix) Deadlock could occur if a recursive series of send
  3164. operations involved multiple displays. (JO)
  3165.  
  3166. 7/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were
  3167. taking up memory on Windows and Macintosh platforms. (SS)
  3168.  
  3169. 7/30/96 (bug fix) A core dump could occur if a <Destroy> handler for
  3170. a window tried to create a child in the half-dead window.  Fixed by
  3171. making the window's name disappear from the name table once it starts
  3172. to be deleted. (JO)
  3173.  
  3174. ----------------- Released patch 4.1p1, 8/2/96 -----------------------
  3175.  
  3176. 4/30/96 (new feature) Added support for named virtual events. New "event"
  3177. command to define/destroy named virtual events and to programmatically
  3178. send both real and virtual events to Tk. (CS)
  3179.  
  3180. 8/6/96 (bug fix) Entry widgets were invoking scrollbar update functions
  3181. too often. (JO)
  3182.  
  3183. 8/9/96 (bug fix) 7/30 change above for <Destroy> handlers broke many
  3184. things by making window available during Destroy handler.  Reworked
  3185. fix for core dump to simply disallow creating children of half-dead
  3186. parents. (JO)
  3187.  
  3188. 8/12/96 (bug fix) Fixed bug where using the Copy menu item on the
  3189. Macintosh would append a NULL character at the end of the text. (RJ)
  3190.  
  3191. 8/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in
  3192. text and entry widgets when function & other non-printing keys were
  3193. pressed. (RJ)
  3194.  
  3195. 8/15/96 (configuration improvement) Changed the file patchlevel.h
  3196. to be tkPatch.h.  This avoids conflict with the Tcl file and is now
  3197. in 8.3 format on the Windows platform. (RJ)
  3198.  
  3199. 8/19/96 (bug fix) Fixed a bug under Windows where the initial window
  3200. position for a toplevel window was reported as +0+0, regardless of the
  3201. actual position. (SS)
  3202.  
  3203. 8/21/96 (bug fix) If the last character on a line in a text widget was
  3204. a space character that didn't completely fit, the text widget would
  3205. sometimes add an extra wrap line. (JO)
  3206.  
  3207. 8/22/96 (feature change) Complete rewrite of the grid geometry manager.
  3208. There is a new layout algorithm that produces better (but different)
  3209. layouts in many common cases. (SU)
  3210.  
  3211. 8/22/96 (new feature) There are two new options for the grid geometry
  3212. manager, "grid update" which forces an immediate layout calculation,
  3213. and a "-pad" option to rowconfigure and columnconfigure that allows for
  3214. extra space around widgets. (SU)
  3215.  
  3216. 8/22/96 (feature change) The order in which the grid geometry manager
  3217. reports slaves is now last-managed first. (SU)
  3218.  
  3219. 8/22/96 (feature change) The column and row weights in the grid
  3220. geometry manager are kept internally as integers, instead of floating
  3221. point values.  Floating point values are still accepted on the command line,
  3222. but are truncated to integers. (SU)
  3223.  
  3224. 8/22/96 (new feature) There are four new commands for opening common
  3225. dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and
  3226. tk_messageBox. Native dialog boxes are used wherever available. (IL)
  3227.  
  3228. 8/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL)
  3229.  
  3230. 8/23/96 (feature change) Invoking the edit menu on the Macintosh now
  3231. generates the following virtual events <<Cut>>, <<Copy>>, <<Paste>>,
  3232. and <<Clear>> instead of faking key events. (RJ)
  3233. *** POTENTIAL INCOMPATIBILITY ***
  3234.  
  3235. 8/25/96 (bug fix)  Fixed a bug that would cause "grid x" to dump core. (SU)
  3236.  
  3237. 8/26/96 (new feature) Added the "unsupported1" command to the
  3238. Macintosh version of Tk.  This command will allow you to set the style
  3239. of a new toplevel Window (much like overrideredirect).  You can use
  3240. this to get access to all of the Native Mac window styles.  This is to
  3241. hold you over until we get a more general solution added to the
  3242. toplevel command. (RJ)
  3243.  
  3244. 8/26/96 (new feature) Added support to handle the zoom box on a
  3245. Macintosh window.  (Currently, you can only get a Tk window with a
  3246. zoom box by using the "unsupported1" command. (RJ)
  3247.  
  3248. 8/27/96 (documentation change) Removed old change bars (for changes in
  3249. Tk 4.1 and earlier releases) from manual entries. (JO)
  3250.  
  3251. ----------------- Released 4.2b1, 8/30/96 -----------------------
  3252.  
  3253. 9/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files
  3254. could be listed twice, if a long list of files were shown, and the view
  3255. scrolled to the right, and then a different file file was shown, the
  3256. scrollregion on the canvas wasn't being reset, so the file dialog was
  3257. broken from then on, added an update idletasks so that the watch
  3258. cursor was shown when the dialog was thinking. For the motif file 
  3259. dialog, fixed the weights for resizing.  On the clrpicker, fixed the
  3260. finalColor variable which caused problems when the OK button was
  3261. "clicked" before the dialog was mapped (in the test suite). Added Ioi's
  3262. last changes from before he left. For message boxes, if a single button
  3263. message box is shown (currently only 'ok'), it is set to be the default
  3264. even if not specified. (KC)
  3265.  
  3266. 9/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a
  3267. seemingly random location.  (RJ)
  3268.  
  3269. 9/5/96 (bug fix) Text widgets had rounding problems with the "yview"
  3270. command that caused them sometimes to round to the line before the
  3271. correct one. (JO)
  3272.  
  3273. 9/5/96 (bug fix) Changed grab code to retry grabs after errors where
  3274. another application already has the grab.  This is needed to get
  3275. around race conditions with some window managers and will hopefully
  3276. solve the grab errors that people see occasionally. (JO)
  3277.  
  3278. 9/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling
  3279. of window items in canvases. (JO)
  3280.  
  3281. 9/11/96 (bug fix) The open and save file dialogs would change the
  3282. current working directory under Windows. (SS)
  3283.  
  3284. 9/12/96 (bug fix) The Tk event system was delivering events to dead
  3285. windows, if the event handler got reentered during a Destroy event
  3286. handler.  This could cause core dumps and other problems. (JO)
  3287.  
  3288. 9/20/96 (bug fix) In XFillRectangles under Windows, a brush was not
  3289. being deallocated. (SS)
  3290.  
  3291. 9/20/96 (bug fix) The Mac window manager used to generate a mouseUp
  3292. event for a top level that was recently raised to the front/active
  3293. window which often caused a tk(priv) error.  The up event is no
  3294. longer generated with solves several problems. (RJ)
  3295.  
  3296. 9/25/96 (bug fix) The font code under Windows was leaking memory
  3297. whenever a new font was referenced using the three part font names. (SS)
  3298.  
  3299. 9/26/96 (bug fix) The tests for the common dialogs still used the 'testevent'
  3300. function.  I updated these calls in clrpick.test, msgbox.test, filebox.test
  3301. to use the new event gereating mechanism.
  3302.  
  3303. 9/18/96 (bug fix) Long-standing bug in bind where <Button-1><Button-1> was
  3304. reported as <Double-Button-1>, but <Double-Key-a> was reported as "aa". (CS)
  3305.  
  3306. 9/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes 
  3307. made for virtual events. (CS)
  3308.  
  3309. 9/30/96 (feature change) Binding for new virtual events included both 
  3310. lower and upper-case, e.g., <<Copy>> was defined as <Control-c> and 
  3311. <Control-C>.  Previously, widgets were directly bound to only lower-case
  3312. bindings.  The upper-case binding caused incompatibility with some existing 
  3313. Tcl programs, so the upper case bindings for <<Cut>>, <<Copy>>, and <<Paste>>
  3314. were removed. (CS)
  3315.  
  3316. 9/30/96 (bug fix) The postscript code in the canvas widget now uses
  3317. channels to get and write .ps files which fixed a bug on the Mac where
  3318. an output file would have mixed EOL characters.  In addition, I added
  3319. the ability for the prolog to come from the Tk shared library on the
  3320. Mac which makes it possible to have a standalone application. (RJ)
  3321.  
  3322. 10/1/96 (feature change)  "grid forget" was renamed "grid remove".  A new
  3323. command "grid forget" was added whose semantics are the same as "pack forget"
  3324. (SAU)
  3325. *** POTENTIAL INCOMPATIBILITY ***
  3326.  
  3327. 10/1/96 (feature change)  grid no longer accepts floating point values for
  3328. row or column weights, integers must be used.  (SAU)
  3329. *** POTENTIAL INCOMPATIBILITY ***
  3330.  
  3331. 10/1/96 (feature change)  "grid {column,row}configure <master> <index>"
  3332. returns a list of option value pairs for all of the row or column
  3333. constraints. It used to return an error. (SAU)
  3334.  
  3335. 10/1/96 (bug fix)  "The way grid handles '^' short-cuts was re-written
  3336. to eliminate core dumps. (SAU)
  3337.  
  3338. 10/3/96 (feature change) A virtual event binding associated with a 
  3339. given physical event is now considered less specific than a binding for
  3340. that same physical event, all other things being equal. (CS).
  3341.  
  3342. 10/3/96 (bug fix) Under Windows text placed on the clipboard did not
  3343. undergo CRLF translation when delivered to other applications. (SS)
  3344.  
  3345. 10/3/96 (bug fix) Copying an image onto itself with a zoom factor that
  3346. caused the image to grow was accessing freed memory. (SS)
  3347.  
  3348. 10/3/96 (bug fix) Under Windows, the image blank subcommand did not
  3349. work. (SS)
  3350.  
  3351. 10/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC
  3352. were not implemented, and XSetLineAttributes did not correctly update
  3353. the GC. (SS)
  3354.  
  3355. 10/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not
  3356. handled properly. (SS)
  3357.  
  3358. 10/10/96 (bug fix) Under Windows, images of depth other than 8 or 24
  3359. bits were not being rendered properly. (SS)
  3360.  
  3361. 10/10/96 (bug fix) Under Windows, bitmap subimages were not correctly
  3362. displayed. (SS)
  3363.  
  3364. 10/14/96 (bug fix) Under Window, wm resizable would constrain both
  3365. programatic resizes as well as user resizes. (SS)
  3366.  
  3367. ----------------- Released 4.2, 10/16/96 -----------------------
  3368.  
  3369. 10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause
  3370. a crash when used with a clipping bitmap. (SS)
  3371.  
  3372. 10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog
  3373. on the Macintosh to the shared library for Tk. (RJ)
  3374.  
  3375. 10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an
  3376. error due to a misplaced common in library/menu.tcl. (JO)
  3377.  
  3378. 10/23/96 (bug fix) Errors in files sourced by the Macintosh
  3379. "Source..." menu are now correctly reported via the background
  3380. error mechanism. (RJ)
  3381.  
  3382. 10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation
  3383. that caused refreshes to not occur for canvases with embedded 
  3384. windows. (RJ)
  3385.  
  3386. 10/24/96 (bug fix) Provided workaround for Apple bug that doesn't
  3387. handle zooming correctly for floating windows. (RJ)
  3388.  
  3389. 10/24/96 (bug fix) Macintosh tearoff menus are now correctly 
  3390. displayed as Mac floating windows. (RJ)
  3391.  
  3392. 11/1/96 (bug fix) Restored manual page for procedures like
  3393. Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted
  3394. when Tk_CreateMainWindow procedure was decommissioned. (JO)
  3395.  
  3396. 11/19/96 (bug fix) Fixed bugs in postscript code that would cause the
  3397. prefix to not be included and the output file to have the wrong
  3398. permissions. (RJ)
  3399.  
  3400. 12/2/96 (bug fix) Fixed problem with canvas lines where it didn't
  3401. compute bounding boxes correctly for zero-width lines: this could
  3402. potentially leave garbage on the screen when items were deleted or
  3403. moved. (JO)
  3404.  
  3405. 12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y
  3406. which was returning garbage. (RJ)
  3407.  
  3408. 12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was
  3409. incorrect for non-zero values of ipadx and ipady (SU)
  3410.  
  3411. 12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an
  3412. already managed slave is re-managed in a different master. (SAU)
  3413.  
  3414. ----------------- Released 4.2p1, 12/8/96 (Mac only) --------------
  3415.  
  3416. 1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync
  3417. with the Macintosh clipboard on start-up.  (RJ)
  3418.  
  3419. ----------------- Released 4.2p2, 1/31/97 --------------
  3420.  
  3421. ----------------------------------------------------------
  3422. Changes for Tk 4.2 go above this line.
  3423. Changes for Tk 4.3 go below this line.
  3424. ----------------------------------------------------------
  3425.  
  3426. 9/19/96 (improvement) Implemented table driven mechanism for deciding
  3427. whether a command is safe. If it is added by Tk_Init and it appears in the
  3428. table then it is kept, otherwise it is removed in a safe interpreter. (JL)
  3429.  
  3430. 10/18/96 (new feature) Added support for application embedding:
  3431.     - Frame and toplevel widgets now have a -container option, which
  3432.       turns the widget into a container.
  3433.     - Toplevel widgets have a -use option for requesting that the
  3434.       widget be embedded in another application.
  3435.     - Wish also supports a -use command-line option.
  3436. Embedding is fully supported under Unix, but the implementation is
  3437. not complete under Windows or the Macintosh (it works just well
  3438. enough to support the Tcl/Tk plugin). (JO)
  3439.  
  3440. 10/22/96 (bug fix) The commands "winfo rootx" and "winfo rooty" didn't
  3441. work for non-toplevel windows in embedded applications: they returned
  3442. the coordinates of the nearest toplevel. (JO)
  3443.  
  3444. 12/02/96 (new feature) Implemented Safe Tk. Tk can now be loaded into a
  3445. safe interpreter that has been created with tcl_safeCreateInterp, by
  3446. calling load {} Tk interpname. (JL)
  3447.  
  3448. 12/02/96 (new feature) A safe Tk interpreter can no longer generate
  3449. postscript output from a canvas. (JL)
  3450.  
  3451. 12/02/96 (new feature) Added -channel option to photo command to allow
  3452. image data to be read from a channel. This is useful in safe Tk
  3453. interpreters where the data cannot be read directly from a file. (JL)
  3454.  
  3455. ----------------------------------------------------------
  3456. Changes for Tk 4.3 go above this line.
  3457. Changes for Tk 8.0 go below this line.
  3458. ----------------------------------------------------------
  3459.  
  3460. 9/1/96 (new features) The font mechanism in Tk has been completely
  3461. reworked:
  3462.     - Font names need not be nasty X LFDs: more intuitive names like
  3463.       {Times 12 Bold} can also be used.  See the manual entry font.n
  3464.       for details.
  3465.     - Font requests always succeed now.  If the requested font is not
  3466.       available, Tk finds the closest available font and uses that one.
  3467.     - Tk now supports named fonts whose precise attributes can be
  3468.       changed dynamically.  If a named font is changed, any widget
  3469.       using that font updates itself to reflect the change.
  3470.     - There is a new command "font" for creating named fonts and querying
  3471.       various information about fonts.
  3472.     - There are now officially supported C APIs for measuring and
  3473.       displaying text.  If you use these APIs now, your code will
  3474.       automatically handle international text when internationalization
  3475.       is added to Tk in a future release.  See the manual entries
  3476.       MeasureChar.3, TextLayout.3, and FontId.3.
  3477.     - The old C procedures Tk_GetFontStruct, Tk_NameOfFontStruct, and
  3478.       Tk_FreeFontStruct have been replaced with more portable procedures
  3479.       Tk_GetFont, Tk_NameOfFont, and Tk_FreeFont.
  3480.       *** POTENTIAL INCOMPATIBILITY ***
  3481. (CS)
  3482.  
  3483. 9/24/96 (bug fix) Under Windows, transient windows would be destroyed
  3484. if their master was destroyed, even if the transient window was not a
  3485. child of the master. (SS)
  3486.  
  3487. 10/18/96 (new features) A -menu option has been added to the toplevel
  3488. widget command, which allows a menu to operate as a menubar. On the
  3489. Macintosh, the menubar is displayed accross the top of the main monitor,
  3490. just like with other applications. Under Windows and Unix, the menu is
  3491. attached to the toplevel window. Also, changed some semantics.  
  3492. Tearoff menus will now reflect changes to the menu it was 
  3493. torn off from, and are deleted when the master menu is
  3494. deleted. Tearoffs also reflect more look-and-feel of the 
  3495. platforms they are running on. (SRP)
  3496.  
  3497. 10/31/96 (bug fix) Under Windows, missing system cursors would
  3498. generate an error instead of falling through to the Tk cursor of the
  3499. same name. (SS)
  3500.  
  3501. 11/7/96 (feature change) Under Unix, default borderwidth is now 1 to
  3502. more closely approximate CDE.  (SS)
  3503. Note: this change was undone on 6/12/97, restoring the default border
  3504. width to 2 again.  (JO)
  3505.  
  3506. 11/7/96 (new feature) The button widget now supports a -default option
  3507. that draws a platform specific default ring around the widget. (SS)
  3508.  
  3509. 11/7/96 (feature change) Under Windows, buttons and scrollbars now
  3510. have native look and feel.  This affects the default class bindings
  3511. and the way the some configuration options are interpreted.  Refer to
  3512. the widget manual pages for more details. (SS)
  3513. *** POTENTIAL INCOMPATIBILITY ***
  3514.  
  3515. 11/19/96 (bug fix) Under Windows, images were incorrectly drawn on
  3516. 16-bit displays. (SS)
  3517.  
  3518. 11/19/96 (bug fix) Under Windows, the class name for the main window
  3519. (.) was not properly generated from argv0. (SS)
  3520.  
  3521. 11/20/96 (bug fix) Fixed a couple of bugs in the Canvas widget.  The
  3522. postscript file is now created with the correct permissions.  Also,
  3523. the prolog is now properly included in all cases. (RJ)
  3524.  
  3525. 11/22/96 (bug fix) Under Windows, the initial directory and file names
  3526. were not properly translated before being passed to the system
  3527. open/save file dialogs.  So forward slashes were not converted to
  3528. backslashes, and tilde substitution was not performed.  (SS)
  3529.  
  3530. 11/25/96 (feature change) Under Windows and Macintosh, the selection
  3531. highlight is now hidden whenever an entry or text widget loses focus.
  3532. Also, the previous selection information is not lost when a new
  3533. selection is made in a different widget. (SS)
  3534.  
  3535. 11/26/96 (new feature) Added support for images as primitive types in
  3536. text widgets. (SU)
  3537.  
  3538. 11/30/96 (configuration improvement) Modified configure.in to handle the
  3539. case where Tcl and Tk are installed in different places by including both
  3540. their library directories in the library search path for Tk. (JO)
  3541.  
  3542. 12/3/96 (bug fixes) Fixed two bugs related to canvas lines that caused
  3543. the screen to be incorrectly refreshed, leaving garbage on the screen.
  3544. One bug was related to lines with width zero, and the other was
  3545. related to lines with very long miters. (JO)
  3546.  
  3547. 12/4/96 (bug fix) The "update" command was only syncing the display
  3548. for its main window.  Changed to sync all displays. (JO)
  3549.  
  3550. 12/5/96 (bug fix) Color deallocation would occasionally cause a panic
  3551. under Windows. (SS)
  3552.  
  3553. 12/5/96 (bug fix) Errors during startup were silently discarded under
  3554. Windows. (SS)
  3555.  
  3556. 12/5/96 (bug fix) Errors during startup were silently discarded under
  3557. Windows. (SS)
  3558.  
  3559. 12/11/96 (bug fix) Text widgets weren't considering the -spacing1
  3560. and -spacing2 options when computing their desired geometry. (JO)
  3561.  
  3562. 12/12/96 (feature change) Option menus using tk_optionMenu were
  3563. created with command entries that set the option menu's variable in a
  3564. command string. This has been changed so that the option menu's
  3565. entries are now radiobutton entries so that the entries that matches
  3566. the variable is now checked when the menu is posted. (SRP)
  3567.  
  3568. 12/12/96 (feature change) The destroy command no longer returns an
  3569. error when a window does not exist. (SRP)
  3570.  
  3571. 12/13/96 (new feature) grid row/column-configure accepts a list of
  3572. indices in addition to a single index. (SU)
  3573.  
  3574. 12/17/96 (bug fix) Under Windows, command line was not being parsed
  3575. correctly if it contained the literal characters \" (CS)
  3576.  
  3577. 12/17/96 (feature change) Native Windows labels do not get a focus-ring
  3578. border.  (CS)
  3579.  
  3580. 12/17/96 (bug fix) Under Windows, colors specified as "#XXYYZZ" where XX, YY, 
  3581. or ZZ were not valid hex digits were getting a random color value instead of
  3582. being an error. (CS) 
  3583.  
  3584. ----------------- Released 8.0a1, 12/17/96 -----------------------
  3585.  
  3586. 12/23/96 (bug fix) Fixed two menu bugs:
  3587.     - Menus could get stacked below other windows so that they weren't
  3588.       visible when posted (especially under olvwm and fvwm).
  3589.     - Under olvwm if you pressed button 1 over an entry in a new-style
  3590.       menubar, the menu didn't appear until you moved the mouse slightly.
  3591. (JO)
  3592.  
  3593. 1/6/97 (bug fix) Focus could accidentally get grabbed by an application
  3594. away from the rightful focus owner if the focus recently changed from one
  3595. application to another. (JO)
  3596.  
  3597. 1/6/97 (bug fix) Under Windows, the console was appearing even for
  3598. non-interactive applications.  This was a side effect of a general
  3599. problem with the wm state of windows that were being mapped for the
  3600. first time. (SS)
  3601.  
  3602. 1/6/97 (bug fix) Under Windows, the initialization code was not
  3603. looking in the right directory for the Tk libraries when the program
  3604. being run was not in the Tcl installation heirarchy. (SS) 
  3605.  
  3606. 1/8/97 (bug fix) Under Windows, the windows were not being unmapped
  3607. properly, which led to strange packer behavior. (SS)
  3608.  
  3609. 1/8/97 (bug fix) The "winfo containing" command (and the Tk_CoordsToWindow
  3610. procedure) didn't work properly on Unix in the presence of embedding or
  3611. menubars. (JO)
  3612.  
  3613. 1/15/97 (bug fix) Invoking "destroy ." as the command from a menu would
  3614. cause Tk to crash because TkMainInfo was freed before menu released its
  3615. resources.  This bug had already been fixed for scrollbars and buttons. (CS)
  3616.  
  3617. 1/15/97 (bug fix) Tk is now working under Win32s again, including Win32 
  3618. version 1.25.  Fixed separate problems in fonts and dialogs. (CS)
  3619.  
  3620. 1/15/97 (feature change) Under Windows, font sizes are now specified in 
  3621. points, not pixels.  The mapping between pointsize and pixels depends on
  3622. Windows having accurate metrics for the monitor (plug&play helps).  Font
  3623. metrics are still reported in pixels. (CS)
  3624.  
  3625. 1/21/97 (bug fix)  Grid no longer reports rows or columns "out of range"
  3626. when requesting their constraints. (SAU)
  3627.  
  3628. 1/21/97 (bug fix)  Fixed some window manager related bugs on the
  3629. Macintosh.  Now better support global grabs. (RJ)
  3630.  
  3631. 1/21/97 (bug fix) For Windows: Fixed problems with canvas items that
  3632. used end caps.  Fixed arc implementation to more closely approximate
  3633. X.  Stippling now works properly on fat lines. (SS)
  3634.  
  3635. 1/21/97 (bug fix) Small interlaced GIF images were not properly
  3636. decoded. (SS)
  3637.  
  3638. 1/21/97 (bug fix) More changes to image code to try to handle 16-bit
  3639. displays properly under Windows. (SS)
  3640.  
  3641. 1/21/97 (bug fix) Numerous display bugs on Unix and Macintosh are now
  3642. fixed. Numerous binding problems for menubars under Unix are now
  3643. fixed. Deletion of menu separators under Windows is now fixed. (SRP)
  3644.  
  3645. ----------------- Released 8.0a2, 1/24/97 -----------------------
  3646.  
  3647. 1/29/97 (feature change) The -transient field for menus is no longer
  3648. supported.  There is now a -type field which is used to achieve the
  3649. same purpose that the -transient field accomplished. When a menu is
  3650. created, the -type field controls whether the menu is a normal
  3651. pull-down menu, a floating tearoff menu or a menubar. This option is
  3652. normally only used by the library code and internally by the menubar
  3653. code. (SRP)
  3654. *** POTENTIAL INCOMPATIBILITY ***
  3655.  
  3656. 2/5/97 (feature change) Changed the photo image mechanism to use
  3657. Tcl_Channels instead of FILE * as an argument to image matching
  3658. functions.  The change will make it much easier to write cross
  3659. platform image types in Tk.  Note: FILE * is no longer used anywhere
  3660. in Tk. (RJ)
  3661. *** POTENTIAL INCOMPATIBILITY ***
  3662.  
  3663. 2/7/97 (enhancement) Were not allowed to bind to virtual events inside of
  3664. canvas or text widget (e.g., "$canvas bind all <<foo>> {script}" or
  3665. "$text tag bind sel <<foo>> {script}"); it would return an error
  3666. disallowing that binding.  Now _can_ bind to a virtual event, but that
  3667. binding inside of the canvas or text widget will only fire if the
  3668. underlying virtual event definition is of type key, button, motion,
  3669. enter, or leave; all other physical event types get filtered out by the
  3670. widget before the virtual event mapping is done. (CS)
  3671.  
  3672. 2/22/97 (bug fix) Under Unix, "wm geometry +-20+-30" didn't work. (JO)
  3673.  
  3674. 2/24/97 (bug fix) The photo image didn't always zero out enough of its
  3675. pixel and dither correction arrays. (JO)
  3676.  
  3677. 2/25/97 (bug fix) Fixed focus problem that could cause "BadMatch (invalid
  3678. parameter attributes)" in X_SetInputFocus requests on Unix. (JO)
  3679.  
  3680. 2/25/97 (bug fix and new feature) Added new "gray75" bitmap, fixed
  3681. "gray25" bitmap to really be 25% on (due to an ancient mistake, it
  3682. had been only 12% on). (JO)
  3683.  
  3684. 2/28/97 (bug fix) Windows: made embedding work again on Win32 platform.
  3685. Prevent iconification, deiconinification on embedded windows. (JL)
  3686.  
  3687. 3/4/97 (new feature) Added the ability to manipulate the Apple and
  3688. Help menus on the Macintosh; the system menu on Windows; and to have a
  3689. right justified Help menu on Unix. See the documentation for menu.n
  3690. for more details. (SRP)
  3691.  
  3692. 3/4/97 (bug fix) Prevented core dump at exit if a <Destroy> binding on "."
  3693. gets invoked from destroying a nested widget and the binding causes the
  3694. interpreter to be deleted. The core dump was being caused by the
  3695. interpreter not being Tcl_Preserve'd during the destroy of ".". (JL)
  3696.  
  3697. 3/4/97 (bug fix) Under Unix, when embedded Tk is running in a separate
  3698. process, correctly handle a race condition: ignore cross-over messages from
  3699. the X server for windows that Tk thinks it had already deleted, when the
  3700. containing process deletes its container window. Some other race conditions
  3701. still remain, e.g. with pixmaps, colormaps and images. (JL)
  3702.  
  3703. 3/10/97 (bug fix) Prevented core dump in generic console code due to
  3704. following a NULL pointer when the console interpreter was already deleted.
  3705. This may happen due to different orders of deletion possible at exit. (JL)
  3706.  
  3707. 3/10/97 (bug fix) Fixed bug on Mac and Windows that caused time to be
  3708. ignored when considering if a single click was actually a double
  3709. click. (RJ)
  3710.  
  3711. 3/11/97 (feature change) A major oversight has been that although it was
  3712. documented that the Tk programmer was asking for a font in points (1/72 of an
  3713. inch), under Unix and Mac Tk was actually asking for a font in pixels, while
  3714. only under Windows was it using points.  This caused applications to appear
  3715. much larger when run under Windows.  Now, on all platforms the (purportedly)
  3716. correct size in points is used when asking for fonts.  However, for
  3717. compatibility with existing tk4.2 applications that depend on fonts being of
  3718. specified pixel size, XLFDs retain their incorrect behavior of getting a
  3719. font in pixels.  (CCS)
  3720. *** POTENTIAL INCOMPATIBILITY ***
  3721.  
  3722. 3/13/97 (new feature) "tk scaling" command to setup the mapping between
  3723. pixels and points.  This scaling factor is used by all widgets that accept
  3724. ruler distances, not just fonts. (CCS)
  3725.  
  3726. 3/24/97 (new feature) Added "-columnbreak" option to menu
  3727. entries. When this value is "1", the entry will appear at the top of a
  3728. new column in a non-menubar menu. Also added "-hideMargin". Together
  3729. with "-columnBreak", menus with palettes are now possible. (SRP)
  3730.  
  3731. 3/26/97 (new features and bug fix) Titles for tearoff menus were
  3732. broken on the Mac and Windows. Added the ability to set the title of a
  3733. menu when it gets torn off and override Tk's automatic generation of
  3734. the title.  On the Macintosh, whenever a menu
  3735. label contains three dots in a row "...", the menu will instead
  3736. display the elipses character '…'.  (SRP)
  3737.  
  3738. 3/27/97 (bug fixes) When a menu had an error executing a postcommand,
  3739. the error information was getting lost. On Windows, a set of
  3740. menubuttons was not highligting properly when clicking between
  3741. windows. On Windows, post commands were getting executed twice for
  3742. popup menus.  On Macintosh, fixed problem where menubars were not
  3743. always current. (SRP)
  3744.  
  3745. 4/11/97 (new feature) Menubuttons now have a direction flag which
  3746. controls where the menu popups up relative to the button. (SRP)
  3747.  
  3748. 4/24/97 (bug fix) Transient windows did not obey the resizable setting
  3749. under Windows. (SS)
  3750.  
  3751. 4/24/97 (bug fix) wm geometry did not correctly parse negative
  3752. coordinates. (SS)
  3753.  
  3754. 4/29/97 (bug fix) Changed the canvas polygon implementation to only
  3755. report the coordinates specified by the end user not the automatically
  3756. generated end point of a self closing polygon. (RJ)
  3757. *** POTENTIAL INCOMPATIBILITY ***
  3758.  
  3759. 4/23/97 (feature change) Loosened the rules on parsing font names so that
  3760. unix-centric fonts in scripts don't break when run on Windows or Mac.
  3761. (1) Previously, an XLFD had to specify font name, weight, slant, and size;
  3762. now, a minimal XLFD (such as "*-times-*") will be accepted, and all
  3763. unspecified attributes will be given default values.  (2) Previously, in the
  3764. {name size style ...} format, only the style was optional; now both the size
  3765. and the style are optional; this solves the problem of old scripts that 
  3766. contain specifications of the form "-font fixed" or "-font times". (CCS)
  3767.  
  3768. 5/7/97 (new feature) Menus now send a virtual event <<MenuSelect>>
  3769. when an item is highlighted in a menu. Applications can use this to
  3770. implement context-sensitive help. (SRP)
  3771.  
  3772. 5/14/97 (bug fix) Fixed a race condition in the focus code where focus
  3773. could be taken away from a window incorrectly.  Scenario is that the main
  3774. window creates a toplevel and assigns focus to it.  When the user moves the
  3775. mouse from the main window into the toplevel there was a race between
  3776. two different kinds of focus events. (BW)
  3777.  
  3778. 5/20/97 (bug fix) Fixed bug where the clipboard was not rendered before
  3779. the application exited. (SS)
  3780.  
  3781. 5/22/97 (feature change) When a Tk8.0 menu is configured, all menus
  3782. derived from it (menubars, tearoff) mirror the changes. This was not
  3783. true for the "-tearoff" flag. In Tk4.6, tearoff menus had the
  3784. "-tearoff" flag turned off. Now, the "-tearoff" flag is tracked just
  3785. as the other options are. Tearoff menus and menubars with the
  3786. "-tearoff" option set will not display the tearoff item. This means
  3787. that a given menu entry for a menu and a tearoff of that menu will
  3788. match now. (SRP)
  3789. *** POTENTIAL INCOMPATIBILITY ***
  3790.  
  3791. ----------------- Released 8.0b1, 5/27/97 -----------------------
  3792.  
  3793. 5/30/97 (bug fix) Made the options to the grid command shortcut-able.
  3794. Ie. You can now use -stick, in addition to -sticky. (RJ)
  3795.  
  3796. 6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
  3797. finding the library files when they are installed in a directory
  3798. containing a space in the name. (SS)
  3799.  
  3800. 6/2/97 (bug fix) Virtual events associated with <Enter>/<Leave> in text 
  3801. widget tag caused panic. (CCS)
  3802.  
  3803. 6/6/97 (bug fix) On some systems, struct timeval.tv_sec is unsigned. (SS)
  3804.  
  3805. 6/6/97 (feature change) Changed -default option on buttons to take
  3806. three states: normal, active, disabled.  This allows apps to have a
  3807. row of buttons where the default ring moves between buttons without
  3808. changing the geometry of the buttons.  See the button.n manual page
  3809. for more details. (SS)
  3810. *** POTENTIAL INCOMPATIBILITY with Tk 8.0b1, but not with Tk 4.2 ***
  3811.  
  3812. 6/9/97 (bug fix) Canvas postscript printing now works for bitmaps
  3813. under Windows. (SS)
  3814.  
  3815. 6/10/97 (bug fix) Fixed bug in bindings for listboxes where state wasn't
  3816. being properly initialized on Shift-1 button presses. (JO)
  3817.  
  3818. 6/11/97 (bug fix) Text widget display code did not include internal
  3819. padding in the damage calculation for borders leading to unrefreshed
  3820. sections on Windows and Mac. (SS)
  3821.  
  3822. 6/12/97 (feature reversal) Changed default border widths under Unix
  3823. back to 2 again.  This reverses the change made on 11/7/96. (JO)
  3824.  
  3825. 6/13/97 (bug fixes) In canvas text item: the insertion cursor wasn't shown
  3826. if insertion point was at end of text item, it was impossible to click to
  3827. position the insertion point after the last character, and @x,y indices were
  3828. computed incorrectly if -scrollregion had been specified and canvas was
  3829. scrolled. (CCS)
  3830.  
  3831. 6/13/97 (bug fix) Hitting up/down arrows in a text widget packed in a 
  3832. toplevel window created with the "-screen" option would cause an error dialog
  3833. to pop up. (CCS)
  3834.  
  3835. 6/12/97 (bug fix) Fixed bug in canvas text items where multi-line
  3836. selections were not highlighted properly.  This bug existed only in
  3837. earlier releases of Tk 8.0.  (JO)
  3838.  
  3839. 6/16/97 (bug fix) In some obscure cases, canvas window items could
  3840. accidentally specified a 0x0 size for the window, which caused a
  3841. BadValue error under X. (JO)
  3842.  
  3843. 6/17/97 (bug fix) Tk buttons on the Macintosh will now correctly
  3844. draw under MacOS 8.0. (RJ)
  3845.  
  3846. 6/18/97 (feature change) Changed the way highlights are drawn in text
  3847. widgets so that the empty space to the left of a line is highlighted
  3848. whenever the leftmost character of the line is highlighted (the empty
  3849. space didn't used to be highlighted).  This produces a neater left
  3850. edge when several lines are selected.  (JO)
  3851.  
  3852. 6/18/97 (bug fix) Tk was using the wrong system colors to draw various
  3853. widgets under Windows. (SS)
  3854.  
  3855. 6/19/97 (bug fix) Under Windows, the "wm transient" and "wm overrideredirect"
  3856. subcommands can now be applied to a toplevel to change its window
  3857. style at any time during the life of the window. (SS)
  3858.  
  3859. 6/19/97 (feature change) All GIF and XBM images needed for the "TK"
  3860. file dialog box are included in-line in tkfbox.tcl. (IL)
  3861.  
  3862. 6/27/97 (bug fix) Revamped focus code to eliminate most XSetInputFocus
  3863. calls from the FilterEvent procedure.  This moves the implementation back
  3864. towards the Tk 4.2 implementation, but adds embedding support.  There is
  3865. still a known bug with twm's NoTitleFocus and embedded windows.  However,
  3866. the races in a2 and the funny focus stealing in b1 are gone. (BW)
  3867.  
  3868. 6/25/97 (bug fix) Error message was not properly reported when using
  3869. button 'toggle'. (DL)
  3870.  
  3871. 6/25/97 (bug fix) Removed one source of memory corruption in tkGrid.c code
  3872. (fixes what was exercised by "grid col . 0 -w 1; grid col . 0 -w 25") (DL)
  3873.  
  3874. ----------------- Released 8.0b2, 6/30/97 -----------------------
  3875.  
  3876. 7/1/97 (bug fix) Menu shortcut and tearoff reported problem fixed. (DL)
  3877.  
  3878. 7/1/97 (new feature) TK_BUILD_SHARED flag set in tkConfig.sh
  3879. when Tk has been built with --enable-shared. TK_SRC_DIR added.
  3880. A new tkLibObjs make target, echoing the list of the .o's needed
  3881. to build a tk library, is now provided. (DL)
  3882.  
  3883. 7/9/97 (bug fix) Fixed Tk_CreateFileHandler and Tk_DeleteFileHandler
  3884. macros to directly call the Tcl equivalents. (JL)
  3885.  
  3886. 7/10/97 (bug fix) On the Mac, if the binding for <<MenuSelect>> was
  3887. drawing, the drawing could bleed over into the menus. This is now
  3888. fixed. (SRP)
  3889.  
  3890. 7/10/97 (bug fixes) Removed duplicate code related to Tk_SafeInit,
  3891. made a single init script handling both cases. (DL)
  3892.  
  3893. 7/10/97 (feature change) On Unix, to be able to load Tk into a safe
  3894. interp you need to set the env(DISPLAY) var. Some API should be
  3895. added to allow master crontrol over Tk instantiation. (DL)
  3896.  
  3897. 7/11/97 (new feature) On the Mac, menus that are too big for the
  3898. screen will now scroll. This is part of the interface on the Mac,
  3899. impossible under Windows, and is not done for Unix. (SRP)
  3900.  
  3901. 7/21/97 (bug fix) After fixing the bug that in canvas text item the insertion
  3902. cursor wasn't shown if insertion point was at end of text item, introduced a
  3903. different bug in where clicking in entry widget with 0 characters would
  3904. crash or display garbage. (CCS) 
  3905.  
  3906. 7/22/97 (bug fix) If there were a whole bunch of returns or tabs in a row in
  3907. a canvas text item, then the temporary buffer used when outputting
  3908. postscript could overflow and overwrite the stack. (CCS)
  3909.  
  3910. 7/23/97 (feature change) Reenabled "tkwait" in the Safe Tk base. (JL)
  3911.  
  3912. 7/24/97 (bug fix) Single init script for both Win and Unix.
  3913. new library/safetk.tcl using features from new tcl safe.tcl (DL)
  3914.  
  3915. 7/30/97 (feature change) As a result of native menus, you can no
  3916. longer drag through a frame of menubuttons on Macintosh and Windows
  3917. and have the menus pop down. You can still click on individual
  3918. menubuttons and their menus will pop down.  Applications needing to
  3919. present a menubar should consider using the new "-menu" configuration
  3920. of the toplevel widget to set up menubar which behaves correctly on
  3921. Macintosh, Windows and X Windows. (SRP)
  3922.  
  3923. 7/31/97 (bug fix) Tk widget commands can now safely be hidden commands.
  3924. Previously destroying the widget would potentially leave dangling pointers
  3925. and destroy an exposed command instead of a hidden one if an exposed
  3926. command by that name existed. (JL)
  3927.  
  3928. 7/31/97 (bug fix) On Windows, popup menus were not tracking the right mouse
  3929. button correctly if it was used to invoke the menu. On Unix, tearoff
  3930. menus were stealing focus when the mouse moving over them even when
  3931. focus following was turned off. (SRP)
  3932.  
  3933. 8/4/97 (bug fix) Fixed problem under USENIX where raising a toplevel
  3934. window could cause an X error if the window had just been withdrawn.  (JO)
  3935.  
  3936. 8/4/97 (feature change) tkerror and bgerror are not anymore hard links
  3937. maintained by the Tcl core. The implementation of bgerror provided by
  3938. Tk tries, for backward compatibility only, to to call "tkerror" and
  3939. if that fails, falls back to the usual dialog and stack trace option 
  3940. posting. You can thus still use either "bgerror" or "tkerror" as your
  3941. application error handling proc, but using "bgerror" is strongly
  3942. recommended as support for "tkerror" will eventually vanish in upcoming
  3943. releases. (DL)
  3944. *** POTENTIAL INCOMPATIBILITY with scripts that were using
  3945.     the actual hardlink implementation 'features' and with
  3946.     scripts (if any) that would be calling the default "tkerror" to
  3947.     simulate error messages (use "bgerror" instead)                  ***
  3948.  
  3949. 8/7/97 (feature change/addition) Removed the gif files used for the
  3950. Open dialog box on UNIX (they were previously made inline).  Added a
  3951. new images directory that includes several images of the Tcl and Tcl
  3952. Powered logos. (RJ)
  3953.  
  3954. 8/7/97 (bug fix) Fixed focus to deal with embedding when there is
  3955. no window manager. (BW)
  3956.  
  3957. 8/8/97 (bug fix) Fixed bug in photo image code where photo images from
  3958. different interpreters could get confused if they had the same name. (JO)
  3959.  
  3960. 8/8/97 (new feature) Added new procedure Tk_GetImageMasterData for
  3961. mapping image names to master data.  (JO) 
  3962.  
  3963. 8/8/97 (feature change) Modified Tk_FindPhoto procedure to require
  3964. extra "interp" argument (needed for bug fix above).  (JO)
  3965. *** POTENTIAL INCOMPATIBILITY ***
  3966.  
  3967. 8/8/97 (bug fix) Fixed problems under Windows renaming toplevels with
  3968. menubars. Fixed problems on all platforms renaming menu widgets and
  3969. using new menus of the same name as an old one as cascades. Fixed a
  3970. cosmetic problem with tearoff menus. (SRP)
  3971.  
  3972. 8/13/97 (bug fixes) Fixed "-from" option for the "image create" and
  3973. "imageName read" commands for GIF images, which didn't used to work
  3974. correctly.  Also made transparency work correctly for GIF images
  3975. without the TRANSPARENT_GIF_COLOR hack; TRANSPARENT_GIF_COLOR is
  3976. now ignored.  These fixes were providing by Jan Nijtmans. (JO)
  3977.  
  3978. 13/8/97 (new feature) added safe::loadTk command to load Tk in a
  3979. safe slave interpreter. See the loadTk.n manual page for more
  3980. details. (DL)
  3981.  
  3982. ----------------- Released 8.0, 8/18/97 -----------------------
  3983.